ハマっている「お菓子」を教えて!

for each *** In workbooks・・・Nextで現在開いているexcelのブック名をすべて取得することができますが、2つめのexcelを起動し、そこで開いたブック名は取得することができません。
プロシージャは個人用マクロブックに記載しているのですが、複数起動したexcelのすべてのブック名を取得する方法をどなたかご存知の方いませんでしょうか?
excel2007を使用しています。よろしくお願いします。

A 回答 (4件)

> 別プロセスのExcelは外注したアプリがデータを表示する際に


> 起動する...

(その外注アプリが)表示するデータとは、

 1)Excel ファイルを作成され、特定の場所に保存されている。
   表示は、そのファイルを開いているにすぎない。ファイルを
   改めて保存する必要はない
 2)Excel 画面で表示されるが、ファイルには書き出されていない。
   手動で保存しなければならない

のどちらですか?

1)の場合でファイル名が自明ならば、

  Dim xlApp As Application
  Set xlApp = GetObject(ファイルフルパス).Application

で別プロセスの Excel で開かれていても Application オブジェクト
は参照できますよ。

2)の場合は、厄介です。

この回答への補足

お返事ありがとうございます。
2)の方です。ファイルは保存されておらず、開かれているだけで、保存する必要はありません。ただ、ブック名がBook1.xlsとかBook2.xlsとかそのときどきで変わってしまいます。
ファイル名だけ手動で入力するようにすればできそうですね。ちょっと手間ですけど。

補足日時:2009/12/24 22:38
    • good
    • 1

そうですか。

。。

ちょいと多忙なため、参考ソースや解説を書く時間がとれません。
参考 URL を提示しておきますね。

http://park7.wakwak.com/~efc21/cgi-bin/exqaloung …
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one; …

動作確認はしてませんが、VBA 系の掲示板等でよく見かける方で
かなり詳しい方が書かれたソースみたいですから、参考になると
思います。

いずれにしても、API を駆使した方法になります。
敷居は高いですが、頑張ってください。

  # 簡単なのは、一度保存しちゃうことですけども
    • good
    • 1
この回答へのお礼

返信が遅れ、申し訳ありません。
教えていただいた参考をもとにもうちょっとがんばってみようと思います。
ありがとうございました。

お礼日時:2010/01/04 23:17

> 2つめのexcelを起動し、そこで開いたブック名は取得する...



これを

  別プロセスの excel を起動し、そこで開いたブック名を取得する

と解釈すると、

Sub test()

  ' 別プロセスで Excel を起動する※
  Dim xlApp As Application
  Set xlApp = CreateObject("Excel.Application")
  xlApp.Visible = True
  
  ' (略)※の Excel でブックを開く処理
  xlApp.Workbooks.Open "C:\test.xls"
  
  ' ※の Excel 配下にあるブック名を列挙
  Dim wb As Workbook
  For Each wb In xlApp.Workbooks
    MsgBox wb.Name
  Next

End Sub

といった感じかな。質問趣旨を読み違えていたらスルーして下さい。

この回答への補足

回答ありがとうございます。わかりにくくてすいません。ちょっと補則させていただきます。別プロセスのExcelは外注したアプリがデータを表示する際に起動するんですけど既に起動している(個人用マクロブックにコードが記載されている)excelの配下でブックを開かずに新しくexcelを起動してその配下でブックを開いてしまうんです。で、一つ目のExcelのマクロを実行したときに二つ目のExcelの配下のブック名を取得できません。ちなみにこの二つ目のExcelのブックから一つ目のExcelのブックにデータをコピーしようとしています。二つ目のExcelのオブジェクトを取得できれば教えていただいた方法で二つ目のExcelのブック名も取得出来そうな気がするんですけでそういうことは可能でしょうか?

補足日時:2009/12/24 14:04
    • good
    • 1

http://www2s.biglobe.ne.jp/~iryo/vba/VBA03.html

3-7なんかどうですか?

この回答への補足

回答ありがとうございます。
3-7、試してみましたが別プロセスのexcelのブック名は取得されないみたいです。

補足日時:2009/12/25 00:12
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A