Excel VBA質問箱 IV

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

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


36950 / 76732 ←次へ | 前へ→

【44956】ディレクトリが異なる場合
質問  tomo  - 06/12/8(金) 10:35 -

引用なし
パスワード
   「Workbook オブジェクト」についてヘルプを参照すると”開かれているすべてのブックを表す Workbooks コレクション”とかかれています。例として,moji = Workbooks("sample1.xls").Sheets("Sheet1").Range("A1").value のような使い方をすると思います。
たとえば,"sample1.xls" が ThisWorkbook.Path と異なるディレクトリに保存されている場合でも,ファイルが開いている状態であれば,マクロ実行の際には問題ないと思います。

そこで質問なのですが,"sample1.xls" が閉じている状態では,moji = Workbooks("sample1.xls").Sheets("Sheet1").Range("A1").value はどのような書き方に代わるのでしょうか?

具体的には次のように記述したものを書き換えたいと思っています。(ブックが開いている状態では問題なし)

Set wk1 = Worksheets("summary")
wk1.Cells(2, 4).Value = Application.WorksheetFunction.Index( _
      Workbooks("sample1.xls").Sheets("Sheet1").Range("P:P"), _
      Application.WorksheetFunction.Match(Range("$A2"), _
      Workbooks("sample1.xls").Sheets("Sheet1").Range("A:A"), 0), 1)
ブックは "sample1.xls" , "sample2.xls" というように複数あり(全てディレクトリが異なります),シート数も複数あり,If や Select Case 等で使い分けしたいため,Set ステートメントや変数等で表したいと思っています。
なお,
wk1.Cells(2, 5).Value = Application.WorksheetFunction.Index( _
      Workbooks("sample1.xls").Sheets("Sheet1").Range("Q:Q"), _
      Application.WorksheetFunction.Match(Range("$A2"), _
      Workbooks("sample1.xls").Sheets("Sheet1").Range("A:A"), 0), 1)
というようにループさせたいと思っています。

やはり,Workbooks.Open 等でブックを一度開かせて,処理させ,Close させ,別のブックを開くのような手順をさせる方法がいいのでしょうか?
【44727】の質問の際,やたらといろんなブックは開かない方がいいですよと,アドバイスを頂いたため,なんとかコードが記述されているブック以外開かないコードを作ろうと挑んだのですが,行き詰まり質問させて頂きました。
宜しくお願いします。
0 hits

【44956】ディレクトリが異なる場合 tomo 06/12/8(金) 10:35 質問
【44957】Re:ディレクトリが異なる場合 Jaka 06/12/8(金) 10:52 発言
【44973】Re:ディレクトリが異なる場合 tomo 06/12/8(金) 15:44 お礼

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