アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2000です。
シートの中で使用した画像やボタンなどのshapeがかなりあります。中にはVBAで非表示にしているのもあります。
ありすぎてわけがわからなくなってきました。

そこでこれまで使用してシートに張り付いているshapeの名前や表示/非表示の別を別なシートに一覧表を作るVBAを書こうと思いましたがうまく行きません。

お助けください。

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/03/13 19:53

どこが上手く行かないのでしょう?


うまく行かない部分を提示しては?

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/03/13 19:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!