Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8264 / 13646 ツリー ←次へ | 前へ→

【34266】workbook.open GETワイルド 06/1/30(月) 9:57 質問[未読]
【34268】Re:workbook.open Statis 06/1/30(月) 10:00 発言[未読]
【34269】Re:workbook.open GE 06/1/30(月) 10:17 質問[未読]
【34271】Re:workbook.open Statis 06/1/30(月) 10:42 発言[未読]
【34273】Re:workbook.open inoue 06/1/30(月) 12:04 発言[未読]
【34345】Re:workbook.open GETワイルド 06/2/1(水) 0:57 お礼[未読]

【34266】workbook.open
質問  GETワイルド  - 06/1/30(月) 9:57 -

引用なし
パスワード
   workbookを完全にオープンするのを待ってから
次のコードを実行するにはどう書いたらいいですか?
今のままでは完全に開く前に実行してしまうのでエラーが出てしまいます。

【34268】Re:workbook.open
発言  Statis  - 06/1/30(月) 10:00 -

引用なし
パスワード
   こんにちは
>workbookを完全にオープンするのを待ってから
>次のコードを実行するにはどう書いたらいいですか?
>今のままでは完全に開く前に実行してしまうのでエラーが出てしまいます。

良くわかりません。
開く前に何を実行しているの?
開いていないの実行できるの?

【34269】Re:workbook.open
質問  GE  - 06/1/30(月) 10:17 -

引用なし
パスワード
   ▼Statis さん:
ワークブックを開いた後に
Workbooks(myFName).Worksheets.Count
でシート数を取得しているのですが、

普通に
Workbooks.Openした後、
Workbooks(myFName).Worksheets.Count
を実行すると
Workbooksのオープンを完全に完了するまえに
Workbooks(myFName).Worksheets.Count
を実行してしまうのでエラーになってしまうようです。
これ完全にひらいた状態で実行すると
取得できるので、完全に完了するのを待つ方法は
ないものかと?思うのですが。

【34271】Re:workbook.open
発言  Statis  - 06/1/30(月) 10:42 -

引用なし
パスワード
   ▼GE さん:
こんにちは
該当のファイルをマクロでOPしては如何ですか?

【34273】Re:workbook.open
発言  inoue E-MAILWEB  - 06/1/30(月) 12:04 -

引用なし
パスワード
   >普通に
>Workbooks.Openした後、
>Workbooks(myFName).Worksheets.Count
>を実行すると
Openメソッドは非同期動作ではないので、
完全に開かないという理由で次行がエラーになるのではないと思います。
myFNameがあやしいのですが、フルパス名のままだったりしませんか?

>Workbooks.Openした後、
これを変数を使って、
Dim WBK As Workbook
Set WBK = Workbooks.Open("C:\HOGE\HOGE.xls")
MsgBox WBK.Worksheets.Count
などとすれば良いはずです。

【34345】Re:workbook.open
お礼  GETワイルド  - 06/2/1(水) 0:57 -

引用なし
パスワード
   サンキュです。参考にさせていただきます。

8264 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free