• ベストアンサー

エクセルVBAで選択していないシートのセルコピー

エクセルVBAで質問させてください。 現在選択していないシートから、セルの書式ごとコピーして貼り付けたいのです。 たとえば Sheets(1).Range(Cells(1, 1), Cells(4, 1)).Copy Sheets(2).Range("A1") 等とすると、Sheets(2)が選択されている状態だとエラーになってしまいます。 おそらく、Copyメソッドというのは、選択されているシートにのみ有効だからなのではないか、と思いますが、セルの値だけでなくフォントその他の書式を、別のシート(現在アクティブでない)から持ってくる方法はありますか?

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

  • ベストアンサー
回答No.2

Sheets(1).Range(Sheets(1).Cells(1, 1), Sheets(1).Cells(4, 1)).Copy Sheets(2).Range("A1") ではどうでしょうか? ちなみに、 >Sheets(1).Range(Cells(1, 1), Cells(4, 1)).Copy Sheets(2).Range("A1") が、 Sheets(1)のモジュールなら常にエラーになりません。 Sheets(2)のモジュールなら常にエラーになります。 標準モジュールのモジュールならSheets(1)がActiveSheetならエラーになりません。

woihtg
質問者

お礼

やってみたところできました。 どうもありがとうございました。

その他の回答 (1)

noname#57896
noname#57896
回答No.1

先頭に Sheets(1).Select を入れるのは邪道ですか?

woihtg
質問者

お礼

はい。私が聞きたかったのはselectでシートを選択せずに行えるのかということなんです。 無理なんでしょうかね・・・?

関連するQ&A

専門家に質問してみよう