お世話になります。
ExellVBAを業務に使用しています。
動作環境は、自宅は256M、Exell2002+Sp3、職場は256M、Exell2003+Sp2。
両方共にウィルスバスターがインストールされています。
次に方法で、Sheet1から、Sheet2、3,4,5・・・へ、セルを連続コピーしていますが、同時にコピー先のSheetではデータ編集も行なっているので、とても重たく感じられます。
ウィルスバスターの推奨メモリは512Mで、足りない環境で動かしているので、この所為かとは思っていますが、取り外して試してはいません。
現在のコピー方法は次の通りです。これで、8年運営しています。
(例)
Sheet1において、
Range("A003:A024").Name = "namA_Room"
Application.Goto Reference:="namA_Room"
Selection.Copy Destination:=Worksheets("Sheet2").Range("E03")
質問です。
コピーには色々方法があろうかと思いますが、
↑の(例)の方法は、現在、一般的に多く使われている方法でしょうか?
それとも、例えば、クリップボードのコピー&ペーストみたいな記述方式の方がいいのでしょうか?
他にも、もっと良い方法がありますか?
一部作り直すつもりです。どうせなら、ベターな方法を取り入れたいと思っています。
御教示よろしくお願いします。
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倍ほど違いました。
メモリーが少ない場合はさらに違いが出てもおかしくないと思うのですが。
ご丁寧に、比較のの実行結果まで行なって頂き、ありがとうございます。
8年前はVB使い初めで、例題を見ながら作っていました。
最近、これが重たく感じられ、いつか作り直しをと思ってましたが
そのままにしていました。
これを機会に、ご提案の内容を取り込み、作り直ししてみます。
ありがとうございました。
補足ですが、
私、クラスモジュールが、なかなか理解が出来なくて、最近なんとなく判ってきて
標準モジュールをクラスモジュールに置き換えながら進めていく予定です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Evernote Simplenoteのコピー&ペースト 1 2022/05/17 14:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムについて。
-
Access VBAから使用したExcelプ...
-
DataTableに入っているデータを...
-
Eclipseのコード入力時の、行コ...
-
ROBOCOPYをスペース付きのフォ...
-
C++言語で、構造体のコピーは可...
-
エクセルのマクロについて教え...
-
Activesheet.Pasteで困っています
-
文字列の切り出し
-
マウントしたディスクにcpで、...
-
amazonの注文履歴の書名が数字...
-
シートに張り付けたボタンがシ...
-
Listviewに表示された文字のコ...
-
一行おきに貼り付ける 可能でし...
-
VBScript でサブフォルダも含め...
-
arduino unoからデータを読み出...
-
エクセルVBA 実行時エラー'...
-
【UWSC】WEBページ内コピーした...
-
Eclipseでコピーするとき行数な...
-
Ctrl + Cなど複数の入力キー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access VBAから使用したExcelプ...
-
C++言語で、構造体のコピーは可...
-
DataTableに入っているデータを...
-
マウントしたディスクにcpで、...
-
エクセルVBA 実行時エラー'...
-
gitってなんですか?
-
Listviewに表示された文字のコ...
-
arduino unoからデータを読み出...
-
一行おきに貼り付ける 可能でし...
-
Ctrl + Cなど複数の入力キー...
-
Activesheet.Pasteで困っています
-
Eclipseのコード入力時の、行コ...
-
ブラウザからコピペすると文字...
-
シートに張り付けたボタンがシ...
-
ROBOCOPYをスペース付きのフォ...
-
文字列の切り出し
-
Eclipseでコピーするとき行数な...
-
【UWSC】WEBページ内コピーした...
-
jakarta poiを使用し、EXCELの...
-
バッチで当日日付で作成される...
おすすめ情報