VB.netからエクセルへ画像貼り付けの問題

解決


あおい  2013-11-30 00:45:30  No: 148251  IP: [192.*.*.*]

VB.net(2010)でエクセルファイル(2010)に写真を貼り付けるプログラムなのですが、今までPictures.Insertで貼り付けていたのですが、これだと写真はリンクされてしまい、写真自体を別の場所へ移動すると写真が表示されなくなることを知りました。
そこで調べてみると、AddPictureというメソッドを使えばいいということがわかったのですが、実際どのような構文で記述すればいいのかわかりません。
たとえば、A1のセルの左上に合わせて幅300、高さ200で写真を貼り付けたい場合どのような宣言と、構文で記述すればいいでしょうか?
現在以下の構文で「NullReferenceExceprionはハンドルされませんでした。」というエラーになります。


 Dim ExFile As String = "C:\1.xlsx"
 Dim Xls1 As New Excel.Application()
 Dim xlBooks As Excel.Workbooks = Xls1.Workbooks
 Dim xlBook As Excel.Workbook = xlBooks.Open(ExFile)
 Dim xlSheets As Excel.Sheets = xlBook.Worksheets
 Dim xlSheet As Excel.Worksheet = xlSheets.Item(1)
 Dim xlCells As Excel.Range = xlSheet.Cells
 Dim xlRange As Excel.Range

 Dim oShapes As Excel.Shapes
 Dim oShape As Excel.Shape

 xlRange = xlSheet.Range("A1")

 oShape = oShapes.AddPicture("C:\1.JPG", False, True, 0, 0, 200, 300)

編集    削除
shu  2013-12-05 01:58:41  No: 148252  IP: [192.*.*.*]

> Dim oShapes As Excel.Shapes
このあと
インスタンスを設定していないので

>  oShape = oShapes.AddPicture("C:\1.JPG", False, True, 0, 0, 200, 300)
でoShapesがNothingとなりエラーとなります。

oShapes = xlSheet.Shapes
が必要です。

編集    削除
あおい  2013-12-07 07:31:48  No: 148253  IP: [192.*.*.*]

Shu様ありがとうございます。
無事できました。

編集    削除