• ベストアンサー

EXCELで使用している画像やボタンの一覧を作りたい

エクセル2000です。 シートの中で使用した画像やボタンなどのshapeがかなりあります。中にはVBAで非表示にしているのもあります。 ありすぎてわけがわからなくなってきました。 そこでこれまで使用してシートに張り付いているshapeの名前や表示/非表示の別を別なシートに一覧表を作るVBAを書こうと思いましたがうまく行きません。 お助けください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こんなんでどうでしょう? Shapeが貼りついているのがSheet1としてSheet2のA列に名前、B列に「表示」か「非表示」の一覧表を出力します。 Sub test1() Dim Myshape As Shape n = 1 For Each Myshape In Sheets("Sheet1").Shapes Sheets("Sheet2").Cells(n, "A").Value = Myshape.Name If Myshape.Visible = True Then Sheets("Sheet2").Cells(n, "B").Value = "表示" Else Sheets("Sheet2").Cells(n, "B").Value = "非表示" End If n = n + 1 Next End Sub

error123
質問者

お礼

ありがとうございました。 For Each ~ Next だとは思ったのですがうまくまとめられませんでした。 たすかりました。

その他の回答 (1)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

どこが上手く行かないのでしょう? うまく行かない部分を提示しては? Sub test() Dim ws As Worksheet, tws As Worksheet Dim i As Long, sh As Shape  Set tws = ActiveSheet  Set ws = Worksheets.Add  cnt = 1   For Each sh In tws.Shapes     ws.Range("A" & cnt) = sh.Name     ws.Range("B" & cnt) = sh.Visible     ws.Range("C" & cnt) = sh.TopLeftCell.Address     ws.Range("D" & cnt) = sh.AutoShapeType     ws.Range("E" & cnt) = TypeName(sh)     cnt = cnt + 1   Next sh End Sub

error123
質問者

お礼

ありがとうございました。 For Each ~ Next だとは思ったのですがうまくまとめられませんでした。 たすかりました。

関連するQ&A