質問: excel vbaで他のexcelファイルのデータ取得 excel初心者です。 excel vbaで他のexcelファイルのワークシートのデータを取得するのにはどうしたらいいのでしょうか。 よろしくお願いします。
回答: book-aからbook-bを参照する例を書いてみました。 book-bが開いていなければ、book-bを開いています。book-bのパスとbook名はセットして下さい。 book-aの標準モジュールに貼りつけます。 sub sansyobook() dim wba as workbook 'book-a dim ws1a as worksheet 'book-aのシート1 dim wbb as workbook 'book-b dim ws1b as worksheet 'book-bのシート1 dim wbbpath as string 'book-bのパス dim wbbname as string 'book-bのbook名 dim wbbopenflg as boolean 'book-bを強制的に開いたらtrue 'book-bのパスとbook名 wbbpath = "c:\・・・・\・・・\・・・\" '自分で定義します wbbname = "okbook2.xls" '自分で定義します application.screenupdating = false 'book-aとbook-aのシート1を定義 set wba = thisworkbook set ws1a = wba.worksheets("sheet1") 'book-bが開いてなかったらエラールーチンで開く on error goto errorhandler 'book-bとbook-bのシート1を定義 set wbb = workbooks(wbbname) on error goto 0 set ws1b = wbb.worksheets("sheet1") '//////////////// 参照例 /////////////////////////////////// 'book-aのシート1のa1に、book-bのシート1のb1を書き込み ws1a.range("a1").value = ws1b.range("b1").value 'book-aのシート1のa2~a10に、book-bのシート1のc1~c9を書き込み ws1a.range("a2:a10").value = ws1b.range("c1:c9").value '//////////////////////////////////////////////////////////// 'book-bを強制的に開いたら閉じる if wbbopenflg then wbb.activate wbb.close end if wba.activate application.screenupdating = true exit sub errorhandler: 'book-bが開いてなかったら開く workbooks.open wbbpath & wbbname set wbb = workbooks(wbbname) wbbopenflg = true resume next end sub