• ベストアンサー

異なるブック間でのセル範囲のコピー/VBA

異なるブック間でクリップボードを経由せず直接コピーしたいため 下記のマクロを記述していますが、実行エラーが発生します。 どうしてでしょうか。 ThisWorkbook.Worksheets(3).Range(Cells(3, 1), Cells(3 + a, 1)).Value = Workbooks("excel.xls").Worksheets(1).Range(Cells(11, 3), Cells(11 + a, 3)).Value (補足) (1)VBA実行中のThisWorkbook、excel.xlsは別のブック ですが、同じフォルダにあります。 (2)aは数値が入る変数です。

質問者が選んだベストアンサー

  • ベストアンサー
  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.2

Cells(3, 1)や他のCellsが参照エラーになるためです。 ブックとワークシートを特定できないためエラーになってしまいます。 正しくは ThisWorkbook.Worksheets(3).Range(ThisWorkbook.Worksheets(3).Cells(3, 1), _ ThisWorkbook.Worksheets(3).Cells(3 + a, 1)).Value _ = Workbooks("excel.xls").Worksheets(1).Range(Workbooks("excel.xls").Worksheets(1).Cells(11, 3), _ Workbooks("excel.xls").Worksheets(1).Cells(11 + a, 3)).Value

saladman
質問者

お礼

実行エラーがなくなりました! 各Cellsのブックとシートを指定しないといけなかったのですね。 貼り付けるだけの簡単な処理なので、すぐ解決できるエラーだと思っていましたが、簡単なようで難しかったです。 ありがとうございましたm(_ _)m

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

"excel.xls"を開いていますか? >同じフォルダにあります。 という記述からすると、もしかして開かずに処理しようとしている?それは無理です。

saladman
質問者

お礼

ご回答ありがとうございます。 エクセルの「excle.xls」は開いてから処理しています。

関連するQ&A