• ベストアンサー

ExcelVBAで範囲のセルを別のシートのセルに代入する方法はありますか

ExcelVBAで範囲のセルを別のシートのセルに代入する方法はありませんか。 範囲でなく、一つのセルだけなら代入できるのですが、範囲にすると代入先が空白になってしまいます。 例えばSheet2のC1~C3をSheet1のB1~B3に代入したいとき Sheets("Sheet1").Range("B1:B3") = Sheets("Sheet2").Range("C1:C3") この記述だとSheet1のB1~B2までが空白になってしまいます。 アクティブシートが変わると処理がおかしくなるのでコピーペーストは使いにくいです。 よろしくお願いします。

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

  • ベストアンサー
  • kouji_124
  • ベストアンサー率46% (283/605)
回答No.1

代入したいのは「値」と言う事で宜しいでしょうかね。 原因は[Value]が省略されている為だと思います。 Sheets("Sheet1").Range("B1:B3").Value = Sheets("Sheet2").Range("C1:C3").Value 上記の様にすれば大丈夫な筈です。 因みに、1つのセルの値をコピーする時に下記の様にしていませんか。 Sheets("Sheet1").Range("B1") = Sheets("Sheet2").Range("C1") 上記でも動作しますが、正確には下記の様に記述します Sheets("Sheet1").Range("B1").Value = Sheets("Sheet2").Range("C1").Value 日頃から「Value」等を省略しないようにすれば今回の様なトラブルも防げると思います。

ff11111111
質問者

お礼

出来ました! 個々のセルを代入するときは省略しても問題なかったのでいつもValueは省略していました。 今後はValueを習慣付けようと思います。 ありがとうございました。

関連するQ&A