• ベストアンサー

Excelでブック名とシート名の取得方法は?

Excel2000のVBAで、そのパソコンで開いている全てのEXCELブック名とそれらにあるシート名を取得したいのですが、そんなことはできるのでしょうか?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.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

abekkan
質問者

お礼

ありがとうございました。教えてもらったコードから下記のようにして一覧表を作ることができました。おかげさまで助かりました。 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

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

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 後半は自信ありません。

abekkan
質問者

お礼

ありがとうございます。 後半はいいのですが、前半はActiveなBookのシートだけしか出てこないですね。Activeじゃないもののシート名はこのやり方では取得できないのでしょうか? また、Book名とsheet名を関連づけられないでしょうか? ブック名 シート名 Book1   sheet1 Book1   sheet2 会計.xls  2003年 会計.xls  2004年  というような、一覧表を作りたいのですが。

  • kmb01
  • ベストアンサー率45% (63/138)
回答No.1

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 とかでいいんでしょうか

abekkan
質問者

お礼

回答ありがとうございます。 Debug.Print の使い方がわからないのですが、これはどうやると見えるのでしょうか? でも、この部分を MsgBox sht.Name とか SheetName=sht.Name とかにしたらシート名が取得できていることは確認できました。 また、Book名とsheet名を関連づけられないでしょうか? ブック名 シート名 Book1   sheet1 Book1   sheet2 会計.xls  2003年 会計.xls  2004年  というような、一覧表を作りたいのですが。

関連するQ&A