
ブックAのシートA´のA2:AZ80にあるデータをコピーし別のパスにあるブックBのシートB´のアクティブなセルに貼り付けをしたいのですが、速度が遅いです。(というよりずっと実行中になってしまいます。)
A2:AZ80には空白の行もあるため貼り付け後に空白の行は削除するようにします。
さらに次回貼り付けする際にはその最終行から貼り付けるようにしたいので、(誰かがデータをいじってアクティブセルが任意のところに移動したまま保存された場合も考慮したいので)
現在は貼り付ける前にB2をアクティブにし、その最終行に飛ばし、その下をアクティブにするように
しています。
上記の条件で速度をできるだけ早くしてあげるにはコードをどのように書いたらいいのでしょうか?
宜しくお願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
個人的には、あまりCopyとPasteは使わないですね。
単純にCells(x,y)でブックAの値を参照して、それをブックBのセルにCells(x,y).Valueで入れるようにします。
あとはこれをループ処理するだけ。
クリップボードを介すると重くなることがありますし。
ループ処理になるので多少時間はかかりますが、上記のようなループ処理の方がメモリをあまり占有しないので動作的には軽いかと思います。
ご参考まで。
No.1
- 回答日時:
コードの提示がないので何とも言えませんが・・・・。
貼付先のセル指定は対して時間がかからないので、
とりあえず以下のようにしてください。
'作画・自動計算OFF
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
・セル貼付 処理
・行の削除 処理
'自動計算・作画ON
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
あとは
・無駄な処理を省く・作業の効率化
・selectを使用しないようにする
・RangeよりCellsを使用する
・内部処理は書き出さずに変数内で処理する
・変数の型は宣言する
・debug.printを無くす
ま、いろいろあると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでCOPYを繰り返すと、処理が...
-
UMLでの例外処理
-
VBAでループ内で使う変数名を可...
-
エクセル 桁分割
-
月度は何て読みますか?
-
【Excel】特定の文字を含むセル...
-
switch の範囲指定
-
ボタンクリックイベント 重複...
-
銀行の窓口処理の件で知ってる...
-
EXCEL VBA マクロ 実行する度に...
-
Excel2013VBAで100%以上の処理...
-
vba 空のデータをSplitする時の...
-
Do Until rs1.EOF であるレコ...
-
wshで起動したコマンドををタイ...
-
findは動くがfindnextがマクロ...
-
Excel VBAにて2つの処理を同時...
-
UWSC
-
VBの質問#if 0 then ってどう...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
【Excel】特定の文字を含むセル...
-
switch の範囲指定
-
VBAでループ内で使う変数名を可...
-
EXCEL VBA マクロ 実行する度に...
-
UMLでの例外処理
-
銀行の窓口処理の件で知ってる...
-
VBAでCOPYを繰り返すと、処理が...
-
月度は何て読みますか?
-
インタラクティブの反対語は?
-
VB.NET DataGridViewでIsNewRo...
-
DoEventsがやはり分からない
-
VBの質問#if 0 then ってどう...
-
お家デートをしててハグを長い...
-
セックスレスの既婚女性は自慰...
-
VB.NET Excelを読み込んでDataT...
-
リョウ・・・量?料?
-
メルカリのメルカードで買い物...
-
Loadイベント中にほかのイベン...
おすすめ情報