今回は、マクロでできる小技を紹介します。
資料を作成する際に、カメラやスマホで撮ってきた写真を資料に貼り付ける事ってありますよね。「百聞は一見に如かず」で、言葉で説明するよりは、画像を見たほうが早いですね。
そんな時、エクセルに画像を貼り付けて大きさを調整する作業って、結構面倒なんです。特に数が多い場合には。
そこで、
画像をワンタッチで指定したセルに貼り付けるマクロを作ってみます。
- 画像を貼り付けるセルを1つ選択する
- ショートカットキーを押す(画像を選択するウインドウを表示する)
- 画像を選択する
※2~3の部分でマクロを使用します。
Public Sub imgpast()
Dim uFil As FileDialog
Dim uCel As Range
Dim uCelW, uCelH As Single
' 貼り付けセルの大きさ
Set uCel = ActiveCell
uCelW = uCel.Width
uCelH = uCel.Height
Set uCel = Nothing
' 貼り付ける画像の選択
Set uFil = Application.FileDialog(msoFileDialogFilePicker)
With uFil
.AllowMultiSelect = False
With .Filters
.Clear
.Add "画像ファイル", "*.jpg; *.gif; *.png", 1
End With
End With
If uFil.Show Then
ActiveSheet.Pictures.Insert(uFil.SelectedItems(1)).Select
With Selection.ShapeRange
.LockAspectRatio = msoFalse
.Width = uCelW
.Height = uCelH
End With
End If
Set uFil = Nothing
End Sub
セルに画像を貼り付けるマクロの完成です。このマクロをショートカットに関連づけておけばOKです。貼り付け先のセルをクリックして、このマクロを起動しファイルダイアログから貼り付ける画像を選択することで、画像がセルの中に張り付きます。
「セルに貼り付ける」と言ってますが、厳密には、セルに画像を貼り付けているのではなく、選択したセルの位置に画像を貼り付けているのです。つまり、選択したセルのあるシートに画像を貼り付けて、画像のサイズをセルの大きさに変更しているのです。
今回作成したマクロは、選択した1つのセルいっぱいに画像を貼り付けていますので、セルの形によっては、画像の縦横比が変わってしまい、見にくい画像になってしまう場合があります。また、画像を貼り付けた後に、セルの幅や高さ等を変更すると画像とセルの位置が変わってしまいます。しかし、画像の貼り付け方を変更することで、画像の縦横比を維持したまま貼り付けたり、セルの大きさ等の変更に合わせて画像のサイズを変更することもできます。
いかがでしたか
簡単なマクロで作業時間が改善できますよね。
では、また。
