Excel VBAで画像を並べて表示させる方法
VBAのワークシート上に写真を一括で並べるマクロです。
ソースコードはこちら
Sub 一覧貼り付け()
' ファイル数をカウント
Dim file_n As Integer
file_n = GetFileCount()
' MsgBox file_n
' セル範囲「A1:A1」の高さ と セル範囲「A1:A1」の幅
Dim a1_h As Integer
a1_h = Range("A1:A1").Height
Dim a1_w As Integer
a1_w = Range("A1:A1").Width
Dim i As Integer ' インデックス用の変数
Dim j As Integer ' 1,1,2,2,3,3…
For i = 1 To file_n
'MsgBox j
If i Mod 2 = 0 Then
' 偶数の処理
' 2列目の画像貼り付け
Worksheets(1).Shapes.AddPicture _
"C:\Users\XXXXX\Desktop\画像を一覧で貼り付ける202207\img\" + CStr(i) + ".png", _
False, True, a1_w, a1_h * j, a1_w, a1_h
j = j + 1
Else
' 奇数
' 1列目の画像貼り付け
Worksheets(1).Shapes.AddPicture _
"C:\Users\XXXXX\Desktop\画像を一覧で貼り付ける202207\img\" + CStr(i) + ".png", _
False, True, 0, a1_h * j, a1_w, a1_h
End If
Next
End Sub
' ファイル数カウント
Function GetFileCount()
'--- ファイル数を知りたいフォルダのパス ---'
Dim folderPath As String
folderPath = "C:\Users\XXXXX\Desktop\画像を一覧で貼り付ける202207\img"
'--- ファイル名(ワイルドカードを使用) ---'
Dim fileName As String
fileName = "*"
'--- ファイル数を格納する変数 ---'
Dim i As Long
i = 0
'--- Dir関数の戻り値を格納する変数 ---'
Dim tmp As String
'--- ファイル数をカウント
tmp = Dir(folderPath & "\" & fileName)
Do While tmp <> ""
i = i + 1
tmp = Dir()
Loop
GetFileCount = i
End Function
使用画像はこちら
Sub 一覧貼り付け()
' ファイル数をカウント
Dim file_n As Integer
file_n = GetFileCount()
' MsgBox file_n
' セル範囲「A1:A1」の高さ と セル範囲「A1:A1」の幅
Dim a1_h As Integer
a1_h = Range("A1:A1").Height
Dim a1_w As Integer
a1_w = Range("A1:A1").Width
Dim i As Integer ' インデックス用の変数
Dim j As Integer ' 1,1,2,2,3,3…
For i = 1 To file_n
'MsgBox j
If i Mod 2 = 0 Then
' 偶数の処理
' 2列目の画像貼り付け
Worksheets(1).Shapes.AddPicture _
"C:\Users\XXXXX\Desktop\画像を一覧で貼り付ける202207\img\" + CStr(i) + ".png", _
False, True, a1_w, a1_h * j, a1_w, a1_h
j = j + 1
Else
' 奇数
' 1列目の画像貼り付け
Worksheets(1).Shapes.AddPicture _
"C:\Users\XXXXX\Desktop\画像を一覧で貼り付ける202207\img\" + CStr(i) + ".png", _
False, True, 0, a1_h * j, a1_w, a1_h
End If
Next
End Sub
' ファイル数カウント
Function GetFileCount()
'--- ファイル数を知りたいフォルダのパス ---'
Dim folderPath As String
folderPath = "C:\Users\XXXXX\Desktop\画像を一覧で貼り付ける202207\img"
'--- ファイル名(ワイルドカードを使用) ---'
Dim fileName As String
fileName = "*"
'--- ファイル数を格納する変数 ---'
Dim i As Long
i = 0
'--- Dir関数の戻り値を格納する変数 ---'
Dim tmp As String
'--- ファイル数をカウント
tmp = Dir(folderPath & "\" & fileName)
Do While tmp <> ""
i = i + 1
tmp = Dir()
Loop
GetFileCount = i
End Function
使用画像はこちら




