Excel VBA質問箱 IV

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

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


56978 / 76732 ←次へ | 前へ→

【24495】Re:Workbooks(1)と個人用マクロブック
回答  ウッシ  - 05/4/23(土) 10:08 -

引用なし
パスワード
   こんにちは

簡単な例です。
>ActivateやSelect のような選択処理も、まったく必要ありません。
どのブックのどのシートのセルか明示すればいいのです。

これはブックだけですけど、シートもオブジェクト変数を用意してセットしておけば
もっとコードがシンプルに保守し易くなると思います。

各ブックとも同じ処理なら配列変数にブックをセットしてループ処理してもいいです。

Sub test()
  Dim BK1 As Workbook
  Dim BK2 As Workbook
  Dim BK3 As Workbook
  Dim BK4 As Workbook
  Dim BK5 As Workbook
  Dim BK6 As Workbook
  
  Set BK1 = ThisWorkbook
  Set BK2 = Workbooks.Open("C:\Book2.xls")
  Set BK3 = Workbooks.Open("C:\Book3.xls")
  Set BK4 = Workbooks.Open("C:\Book4.xls")
  Set BK5 = Workbooks.Open("C:\Book5.xls")
  Set BK6 = Workbooks.Open("C:\Book6.xls")
  
  BK2.Sheets("Sheet1").Range("A1:A90") _
    .Copy BK1.Sheets("Sheet1").Range("B5")
  BK3.Sheets("Sheet1").Range("B1:B90") _
    .Copy BK1.Sheets("Sheet1").Range("C5")
  BK4.Sheets("Sheet1").Range("C1:C90") _
    .Copy BK1.Sheets("Sheet1").Range("D5")
  BK5.Sheets("Sheet1").Range("D1:D90") _
    .Copy BK1.Sheets("Sheet1").Range("E5")
  BK6.Sheets("Sheet1").Range("F1:F90") _
    .Copy BK1.Sheets("Sheet1").Range("F5")
  
  BK2.Close False
  BK3.Close False
  BK4.Close False
  BK5.Close False
  BK6.Close False

  Set BK2 = Nothing
  Set BK3 = Nothing
  Set BK4 = Nothing
  Set BK5 = Nothing
  Set BK6 = Nothing
End Sub

0 hits

【24482】Workbooks(1)と個人用マクロブック たこ 05/4/22(金) 23:36 質問
【24488】Re:Workbooks(1)と個人用マクロブック IROC 05/4/23(土) 0:24 回答
【24490】Re:Workbooks(1)と個人用マクロブック たこ 05/4/23(土) 1:56 質問
【24495】Re:Workbooks(1)と個人用マクロブック ウッシ 05/4/23(土) 10:08 回答
【24500】Re:Workbooks(1)と個人用マクロブック たこ 05/4/23(土) 12:54 お礼

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