|
分類:[VB.NET/VB2005 以降]
分類:[VB.NET/VB2005 以降]
OS:Windows XP
言語:Visual Basic
DB: SQL Server 2008R2
開発環境:Visual Studio 2008
てくてくと申します。よろしくお願いします。
アプリ上のピクチャーボックスの画像をExcelに出力する処理を作成しているのですが、
エラーが出て上手くいきません。
処理としては以下の様になっています。
-----------------------------------------------------
DimxlSheetsAsExcel.Sheets=xlBook.Worksheets
DimxlSheetAsExcel.Worksheet=Nothing
DimxlRangeAsExcel.Range=Nothing
DimxlRangeBAsExcel.Range=Nothing
'シート選択
xlSheet=DirectCast(xlSheets(1),Excel.Worksheet)
'ピクチャーボックスの画像をクリップボードにコピー
Clipboard.SetImage(PictureBox.Image)
'1シート目を操作対象に設定
xlSheet=DirectCast(xlSheets(1),Excel.Worksheet)
xlRangeB=xlSheet.Cells
'セルA1を貼り付け対象に設定
xlRange=DirectCast(xlRangeB(1,1),Excel.Range)
'クリップボードのデータを貼り付け
xlRange.PasteSpecial()
-----------------------------------------------------
エラーは最後の行の「xlRange.PasteSpecial()」で出ていて、
「Range クラスの _PasteSpecial メソッドが失敗しました。」というエラー内容です。
クリップボードに何もコピーされていないのかと思ったのですが、クリップボードにはしっかりコピーされていました。
ちょっと腑に落ちないのは、プログラム側でクリップボードにコピーをするとエラーになるのですが、
「Clipboard.SetImage(PictureBox.Image)」をコメントアウトし、
手動でビットマップをクリップボードにコピー後にプログラムで処理をすると「xlRange.PasteSpecial()」でエラーとならず、正常にExcelに出力されました。
クリップボードにコピーする処理がいけないのでしょうか?
|