- ベストアンサー
EXCELで使用している画像やボタンの一覧を作りたい
エクセル2000です。 シートの中で使用した画像やボタンなどのshapeがかなりあります。中にはVBAで非表示にしているのもあります。 ありすぎてわけがわからなくなってきました。 そこでこれまで使用してシートに張り付いているshapeの名前や表示/非表示の別を別なシートに一覧表を作るVBAを書こうと思いましたがうまく行きません。 お助けください。
- みんなの回答 (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
その他の回答 (1)
- papayuka
- ベストアンサー率45% (1388/3066)
どこが上手く行かないのでしょう? うまく行かない部分を提示しては? 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
お礼
ありがとうございました。 For Each ~ Next だとは思ったのですがうまくまとめられませんでした。 たすかりました。
お礼
ありがとうございました。 For Each ~ Next だとは思ったのですがうまくまとめられませんでした。 たすかりました。