こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

エクセルVBAで質問させてください。

現在選択していないシートから、セルの書式ごとコピーして貼り付けたいのです。

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

投稿日時 - 2008-04-21 23:32:58

QNo.3966248

困ってます

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

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ならエラーになりません。

投稿日時 - 2008-04-22 03:32:08

お礼

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

投稿日時 - 2008-04-22 21:52:13

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

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

投稿日時 - 2008-04-21 23:50:49

お礼

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

投稿日時 - 2008-04-22 00:42:15

あなたにオススメの質問