こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

画像の貼り付けに関して

環境:Visual Basic 2008

教えて下さい。

現在、あるフォルダに格納されている画像ファイルを、EXCELに貼り付けるような
プログラムを作成中で、以下のようなサンプルを見つけましたが、単純に貼り付けではなく、
指定のセルに貼り付けたいと考えています。

そのような指定のセルに貼り付ける為にはどのような記述をしたら良いでしょうか?

教えて下さい。

《現在の記述》

Dim xlApp As New Excel.Application
Dim xlWb As Excel.Workbook
Dim xlWs As Excel.Worksheet

Dim FileNameTmp As String

xlWb = xlApp.Workbooks.Open("C:\abc.xls")
xlApp.Visible = True

xlWs = xlWb.ActiveSheet
FileNameTmp = "C:\ABC.png"

' シートオブジェクトを用いない時
xlApp.ActiveSheet.Shapes.AddPicture(FileNameTmp, False, True, 10, 20, 100, 100)

'シートオブジェクトを用いた時
'xlWs.Shapes.AddPicture FileNameTmp, False, True, 10, 20, 100, 100

よろしくお願いします。

投稿日時 - 2013-12-26 09:13:47

QNo.8401163

すぐに回答ほしいです

質問者が選んだベストアンサー

指定のセルをC3とし、そのシート名をAA
あるフォルダ名をXXX、画像ファイルをYYYとして
構文を書きます。参考にして下さい。

Sheets(AA).Select
Range("C3").Select
Sheets(AA).Pictures.Insert(XXX & "\" & YYY)

貼付した画像のサイズを調整したい場合
Sheets(AA).Pictures.Insert(XXX & "\" & YYY).Select
とし、
Selection.ShapeRange.Height=375(画像の縦長)
Selection.ShapeRange.Width=250(画像の横長)
とすれば任意のサイズに調整出来ます。

貼付位置をセルとせず、所定の位置(シート最左上を原点として、)
Selection.ShapeRange.IncrementTop=400
Selection.ShapeRange.IncrementLeft=300

「375,250,400,300」はピクセル値でmmではありません。
予め位置とサイズを定めるためのサンプルを作り、
次の構文で位置とサイズを確認すること(ピクセル値)も出来ます。

Dim ZZZ,T,L,H,W
For Each ZZZ In Sheets(AA).Shapes
T = ZZZ.Top
L = ZZZ.Left
H = ZZZ.Height
W = ZZZ.Width
Next

投稿日時 - 2013-12-27 09:37:45

お礼

YON56様、返事が遅くなりまして申し訳ありません。

教えて頂いた通りに記述したところ、問題なくできました!

ありがとうございました!

投稿日時 - 2014-02-10 09:21:40

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問