• ベストアンサー

エクセルのシート名の取得方法

エクセルのファイルを2つ以上開いている場合、例えばAファイル上のシート1のセルにBファイルの全シート名を取得し、入力させることは可能でしょうか。アクティブファイルの全シート名取得のマクロはあるのですが、非アクティブファイルの全シート名をアクティブファイルのシートに入力させるという方法はなかなか参考になるものがありません。 わかる方教えてください。

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

  • ベストアンサー
  • lark_0925
  • ベストアンサー率63% (37/58)
回答No.2

標準モジュールに '==================================================== Sub main()   Dim bk As Workbook   Dim g0 As Long   Dim sht As Object   g0 = 2   Range("a1:b1").Value = Array("ブック名", "シート名")   For Each bk In Application.Workbooks    If Not bk Is ThisWorkbook Then      Cells(g0, 1).Value = bk.Name      For Each sht In bk.Sheets       Cells(g0, 2).Value = sht.Name       g0 = g0 + 1       Next      End If    Next End Sub として、このマクロを記述したブックの適当なシートをアクティブにして 上記mainを実行してみてください。 尚、 If Not bk Is ThisWorkbook Then を If Not bk Is ActiveWorkbook Then に変更すると、微妙に仕様が変更されますから、 試してみてください。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

記録したい(コード記述してある)側のブックを、ActiveBookとして記述するのでは無く、 ThisBook(ThisWorkBookだったか?)で示せば、他のブックをActiveにしても自分を見失いません。

すると、全ての回答が全文表示されます。

関連するQ&A

専門家に質問してみよう