- ベストアンサー
Excelでブック名とシート名の取得方法は?
Excel2000のVBAで、そのパソコンで開いている全てのEXCELブック名とそれらにあるシート名を取得したいのですが、そんなことはできるのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2です。下記をやってみてください。一応それらしく 開いているBOOKごとのシート名が表示されるようですが。 Sub test01() Dim myWB As Workbook For Each myWB In Workbooks MsgBox myWB.Name For i = 1 To myWB.Sheets.Count MsgBox myWB.Sheets(i).Name Next i Next End Sub
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
Sub test01() For i = 1 To Sheets.Count MsgBox Sheets(i).Name Next i For i = 1 To Workbooks.Count MsgBox Workbooks(i).Name Next i End Sub 後半は自信ありません。
お礼
ありがとうございます。 後半はいいのですが、前半はActiveなBookのシートだけしか出てこないですね。Activeじゃないもののシート名はこのやり方では取得できないのでしょうか? また、Book名とsheet名を関連づけられないでしょうか? ブック名 シート名 Book1 sheet1 Book1 sheet2 会計.xls 2003年 会計.xls 2004年 というような、一覧表を作りたいのですが。
- kmb01
- ベストアンサー率45% (63/138)
Sub tmp() Dim wbk As Workbook, sht As Worksheet Dim cht As Chart For Each wbk In Workbooks Debug.Print wbk.Name For Each sht In wbk.Worksheets Debug.Print " " & sht.Name Next For Each cht In wbk.Charts Debug.Print " " & cht.Name Next Next End Sub とかでいいんでしょうか
お礼
回答ありがとうございます。 Debug.Print の使い方がわからないのですが、これはどうやると見えるのでしょうか? でも、この部分を MsgBox sht.Name とか SheetName=sht.Name とかにしたらシート名が取得できていることは確認できました。 また、Book名とsheet名を関連づけられないでしょうか? ブック名 シート名 Book1 sheet1 Book1 sheet2 会計.xls 2003年 会計.xls 2004年 というような、一覧表を作りたいのですが。
お礼
ありがとうございました。教えてもらったコードから下記のようにして一覧表を作ることができました。おかげさまで助かりました。 j = 1 For Each myWB In Workbooks MyBook = myWB.Name For i = 1 To myWB.Sheets.Count MySheet = myWB.Sheets(i).Name Cells(j, 2).Value = MyBook Cells(j, 3).Value = MySheet j = j + 1 Next i Next