• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA シート間のセル・コピー)

エクセルVBAのシート間セルコピー方法について

このQ&Aのポイント
  • エクセルVBAを使用してSheet1から他のシートへのセルコピーを行う際、現在は一般的な方法を使用していますが、他にもクリップボードのコピー&ペースト方式など別の方法が存在するか疑問に感じています。また、コピー先のシートでデータ編集も行っているため、処理が重く感じられることがあります。
  • 現在のコピー方法は、Rangeを指定してコピー元のセルを名前付き範囲に設定し、その範囲をコピーしてコピー先のシートに貼り付けています。この方法は一般的に広く使われており、8年間運用してきました。
  • 質問者はより効率的で良い方法を求めており、クリップボードのコピー&ペースト方式など別の方法があるのか知りたいと考えています。また、ウィルスバスターの推奨メモリ不足も処理の重さの原因かもしれないと述べています。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

>コピーには色々方法があろうかと思いますが、 理屈はよくわかりませんが コピー&ペーストだとメモリーの使用量に影響が必ずあるはずです。 お仕事のようですが コピーするのは 書式やフォントなどの一緒にコピーしなければならない作業なのでしょうか 私は、値を入れたいだけであれば Worksheets("Sheet2").Range("E03:E24").Value = Range("A3:A24").Value の1行で済ましてしまいます。 名前をつけたり、コピーしたりする必要もありません。 ちなみに Range("C2").Value = Now For i = 1 To 1000 Range("A003:A024").Name = "namA_Room" Application.Goto Reference:="namA_Room" Selection.Copy Destination:=Worksheets("Sheet2").Range("E03") Next Range("C3").Value = Now End Sub と Range("B2").Value = Now For i = 1 To 1000 Worksheets("Sheet2").Range("E3:E24").Value = Range("A3:A24").Value Next Range("B3").Value = Now End Sub 同じ作業を1000回繰り返してみたら 5秒と1秒という結果でしたので 5倍ほど違いました。 メモリーが少ない場合はさらに違いが出てもおかしくないと思うのですが。

tt246
質問者

お礼

ご丁寧に、比較のの実行結果まで行なって頂き、ありがとうございます。 8年前はVB使い初めで、例題を見ながら作っていました。 最近、これが重たく感じられ、いつか作り直しをと思ってましたが そのままにしていました。 これを機会に、ご提案の内容を取り込み、作り直ししてみます。 ありがとうございました。 補足ですが、 私、クラスモジュールが、なかなか理解が出来なくて、最近なんとなく判ってきて 標準モジュールをクラスモジュールに置き換えながら進めていく予定です。

すると、全ての回答が全文表示されます。

関連するQ&A