トップ回答者
Copyメソッドによるクリップボードの使用について

質問
-
はじめまして。
Range.Copyメソッドのクリップボード使用について質問があります。
現在、Visual Basic 2005から「Microsoft.Office.Interop.Excel」のRange.Copyメソッドを使用してExcelのコピーを行っています。Excelは2003を使用しており、OSはWindows Server 2003です。
MSDNでは「Destinationを省略するとクリップボードにコピーします。」という説明がありますが、プログラム上で「Destination」を指定してもクリップボードにコピーされてしまいます。
そこで以下の質問があります。
1.「Destination」を指定してもRange.Copyメソッドでは必ずクリップボードを使用するものなのでしょうか?
2.クリップボードを使用しないように回避する方法はあるのでしょうか?
3.mlMappedRange.Copyメソッドもあるようなのですが、こちらを使えばクリップボードを使用しないようになるのでしょうか?(MSDNの説明では、Range.Copyメソッドと同じことを書いていました。)
実際のコーディングは以下の通りです。
-----------------------------------------------
Dim intProcess As Integer 'プロセス
Dim objFromRange As Microsoft.Office.Interop.Excel.Range 'コピー元範囲
Dim objToRange As Microsoft.Office.Interop.Excel.Range 'コピー先範囲
Try
'コピー元範囲指定
objFromRange = CType(CType(mobjBook.Worksheets.Item(strFromSheet), _
Microsoft.Office.Interop.Excel.Worksheet).Range(strFromRange), _
Microsoft.Office.Interop.Excel.Range)
'コピー先範囲指定
objToRange = CType(CType(mobjBook.Worksheets.Item(strToSheet), _
Microsoft.Office.Interop.Excel.Worksheet).Range(strToRange), _
Microsoft.Office.Interop.Excel.Range)
'コピー
Try
objFromRange.Copy(objToRange)
Catch
'「エクセルのレンジコピーに失敗しました。」
Throw New ProjectExceptionClass(ConstantClass.ERRMSG.C_CKAE_029)
End Try
System.Threading.Thread.Sleep(200)
----------------------------------------------------どなたかご存知の方がいましたら、よろしくお願い致します。
回答
-
ClipBoardに影響を与えずにCopyするのは無理そうですね^^;
マクロなどで、値と書式をコピーするプログラムを書くほかには、あとは、シート丸ごとコピーする場合はClipboardを使わないようです。同じような議論をされているスレッドがあったのでご参考になれば。
「C# ExcelのRangeオブジェクトを使ったコピーについて - Insider .NET会議室」
http://ap.atmarkit.co.jp/bbs/core/fdotnet/15564?page=1- 回答としてマーク 山本春海 2011年8月18日 7:55
すべての返信
-
ClipBoardに影響を与えずにCopyするのは無理そうですね^^;
マクロなどで、値と書式をコピーするプログラムを書くほかには、あとは、シート丸ごとコピーする場合はClipboardを使わないようです。同じような議論をされているスレッドがあったのでご参考になれば。
「C# ExcelのRangeオブジェクトを使ったコピーについて - Insider .NET会議室」
http://ap.atmarkit.co.jp/bbs/core/fdotnet/15564?page=1- 回答としてマーク 山本春海 2011年8月18日 7:55
-
ClipBoardに影響を与えずにCopyするのは無理そうですね^^;
マクロなどで、値と書式をコピーするプログラムを書くほかには、あとは、シート丸ごとコピーする場合はClipboardを使わないようです。同じような議論をされているスレッドがあったのでご参考になれば。
「C# ExcelのRangeオブジェクトを使ったコピーについて - Insider .NET会議室」
http://ap.atmarkit.co.jp/bbs/core/fdotnet/15564?page=1Chuki様
ありがとうございました。
上記情報を見てみます。