画像をワンタッチでセルに貼り付ける

今回は、マクロでできる小技を紹介します。

資料を作成する際に、カメラやスマホで撮ってきた写真を資料に貼り付ける事ってありますよね。「百聞は一見に如かず」で、言葉で説明するよりは、画像を見たほうが早いですね。

そんな時、エクセルに画像を貼り付けて大きさを調整する作業って、結構面倒なんです。特に数が多い場合には。

そこで、

画像をワンタッチで指定したセルに貼り付けるマクロを作ってみます。

どんな操作
  1. 画像を貼り付けるセルを1つ選択する
  2. ショートカットキーを押す(画像を選択するウインドウを表示する)
  3. 画像を選択する

※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つのセルいっぱいに画像を貼り付けていますので、セルの形によっては、画像の縦横比が変わってしまい、見にくい画像になってしまう場合があります。また、画像を貼り付けた後に、セルの幅や高さ等を変更すると画像とセルの位置が変わってしまいます。しかし、画像の貼り付け方を変更することで、画像の縦横比を維持したまま貼り付けたり、セルの大きさ等の変更に合わせて画像のサイズを変更することもできます。

おわりに

いかがでしたか

簡単なマクロで作業時間が改善できますよね。

では、また。

コメントの受付は終了しました。