エクセルで画像や図を挿入する機会はかなり多いかと思います。
そこで、今回はエクセルで画像挿入を少しだけ楽できるようにする方法をのせておきます。
このVBAマクロの画像挿入は、リンクを結び付けるのではなく、実体ファイルを挿入する方法を紹介します。
(私のような初心者向けです)
エクセルVBAマクロで画像や図を挿入する方法
画像や図をリンクオブジェクトとしてではなく、実体ファイルとして挿入するには、
Pictures.Insert メソッドではなく、Shapes.Add メソッドを使用します。
Shapes.Add メソッドを使ってマクロを組めば、リンクの貼り付けではなく、実体として貼り付けられます。
不便なことにShapes.Add メソッドはサイズを指定する引数を省略することができないらしく、元の図のサイズを保持したまま図を挿入することができません。
元の図のサイズで挿入したい場合は、図を任意のサイズで挿入後に Shape.ScaleHeight メソッドおよび Shape.ScaleWidth メソッドを使用して元のサイズに戻すようにしてください。
図画像挿入マクロのサンプルコード
このコードをコピペすれば、実体ファイルでの画像挿入が一応できることが確認できると思います。
Sub InsertPict()
Dim objFileName As String
Dim objShape As Shape
objFileName = Application.GetOpenFilename _
(“Pictures (*.gif; *.jpg; *.bmp; *.tif),*.gif; *.jpg; *.bmp; *.tif”, , “画像選択ダイアログ”)
‘ここでマクロの記述を終えると画像を選択するダイアログが出てくるところで終わります。毎回マウス操作でダイアログを開くとこ作業は必要なくなるので、マクロをショートカット登録すれば少しは楽になると思います。
‘アクティブセルの位置に図の幅と高さを 50 ポイントに指定して画像を挿入します
Set objShape = ActiveSheet.Shapes.AddPicture( _
Filename:=objFileName, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=Selection.Left, _
Top:=Selection.Top, _
Width:=50#, _
Height:=50#)
‘図のサイズを元のサイズに戻します
With objShape
.ScaleHeight 1!, msoTrue
.ScaleWidth 1!, msoTrue
End With
End Sub
図や画像ファイルをドラッグ&ドロップでエクセルに挿入する方法
いくつかのサイトでエクセルにファイルをドラッグ&ドロップで挿入する方法が紹介されていました。
なぜかエクセルでは画像ファイルをドラッグ&ドロップで直接挿入することはできないので、
ワードやパワポを開けて、一度それらにドラッグ&ドロップで画像ファイルを挿入して、それからその画像ファイルをエクセルにドラッグ&ドロップで移動させて挿入するという方法です。
実践したところ、楽に画像を挿入することができました。
しかし、理由はわかりませんが、画像の画質が荒くなってしまっていました。
数字や文字が見えづらくなると困る資料を貼り付ける方は注意してください。
上の画像挿入マクロでは画質が荒くなることはありませんでしたので、画質を気にする方はマクロで挿入した方がいいかと思います。