• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Word VBA)

Excel VBAで既に開いているワークブックの一覧取得

このQ&Aのポイント
  • Excel VBAで既に開いているワークブックの一覧を取得する方法を教えてください。
  • Excel VBAのコードを使用して、既に開いているワークブックの一覧を取得したいです。
  • Excel VBAで既に開いているワークブックの名前を取得する方法を教えてください。

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

  • ベストアンサー
  • masnoske
  • ベストアンサー率35% (67/190)
回答No.3

[No.1] です。 すでに解決済みと思いますが、一応回答しておきますね。 Sub test() __Dim wb As Object __For Each wb In GetObject(, "Excel.Application").Workbooks ____Debug.Print wb.Name __Next wb End Sub

その他の回答 (2)

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

全くおかしい。その分野に、不勉強な時に、類推でやるのも「あり」だが、簡単に行かないことが多い。 Books、DocumentsのレベルはFileです。 (For Each wb In CreateObject("Excel.Application").Workbooksは珍奇です) ワードの文書はWorkbooksではない。生兵法」。 そしてVBA(Word)でやるより、VBScriptを勧める。 ーー 例 docmのファイル名一覧 Sub test01() Dim fso Set fso = CreateObject("Scripting.FileSystemObject") Dim foldern As String fldern = "C:\Users\??\XXX" Dim folder Set folder = fso.getFolder(fldern) ' ファイル一覧 Dim file i = 1 For Each file In folder.Files If fso.GetExtensionName(file) = "docm" Then Debug.Print file.Name End If i = i + 1 If i > 1000 Then Exit For  '必ずしも必要ない」 Next End Sub こんなところへ質問せずに、Googleで「vbscript ファイル一覧」などで照会し、コードを真似し、一部修正したほうがまし。 ーー このテーマに関しては、Dir関数を使う方法がある。WEB照会して勉強!。

kazukazu72
質問者

補足

勘違いされているようなので、 Excelのブックからデータを参照してWordへ書き込む処理をするにあたって・・・ Excel VBAからWord VBAに移行したプログラムです。 あくまでもWord VBAでExcelのブックからデータを参照する過程での処理です。 「ワードの文書はWorkbooksではない。」は百も承知です。

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.1

CreateObject だと、そのExcelで開いたブックが操作対象になります。 別途開いたブックを操作対象にするなら、GetObject でExcel を捉える必要があったかと。

関連するQ&A