2023年7月23日日曜日

vbaでシート一覧とグラフ一覧を取得

 Excel vbaでシート一覧とグラフ一覧を取得する

実行するとアクティブシートの1行目にラベル、2行目以降に各シートのグラフ名を列挙します。


A列 Sheet Name シート名

B列 Graph Name グラフ名(カンマ区切り)

C列 paste1.txt(全部同じ)

D列 PageDown 1(全部同じ)

E列 Comment シート名


Sub sht_get()
   
    Dim dt, cnt, buf, sh, g
    cnt = 2
   
    ReDim dt(1 To Worksheets.Count + 1, 1 To 5)
   
    dt(1, 1) = "Sheet Name"
    dt(1, 2) = "Graph Name"
    dt(1, 3) = "Paste"
    dt(1, 4) = "PageDown"
    dt(1, 5) = "Comment"
   
    For Each sh In ThisWorkbook.Sheets
        If sh.ChartObjects.Count = 0 Then GoTo skip_syori
       
        dt(cnt, 1) = sh.Name
       
        buf = ""
        For Each g In sh.ChartObjects
            buf = buf & "," & g.Name
        Next g
        dt(cnt, 2) = Mid(buf, 2)
        dt(cnt, 3) = "paste1.txt"
        dt(cnt, 4) = 1
        dt(cnt, 5) = sh.Name
        cnt = cnt + 1
skip_syori:

    Next sh
    Cells(1, 1).Resize(cnt - 1, 5) = dt
   
End Sub