技術

Excel VBAで画像を並べて表示させる方法

EXCEL

Excel VBAで画像を並べて表示させる方法EXCEL
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

使用画像はこちら

ABOUT ME
usatodo
仕事を充実させ、生活を楽しむ「仕事術」について模索中。人を助ける技術を伝承できるようなエンジニアを目指しています。うさみみが生えた白い生物が、日々、電子・情報処理技術に傾倒しています。趣味で気分転換に思い切った活動をしてしまうことも。サイトでは、生活に役立つ小ネタやスマホの豆知識など、いつもの暮らしがちょっとだけ便利になる情報をお届けします。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA