
ブック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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Visual Basic(VBA) 範囲を指定して別シートにコピペ 2 2022/09/15 07:32
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- その他(Microsoft Office) エクセルマクロ オートフィルターでで選択コピー 2 2022/04/18 11:05
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Excel(エクセル) シートが違う2枚のエクセルシートにある数値を別シートにコピーしたい(VBA?) 8 2022/03/31 12:24
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
英語の知識があって、数学の知...
-
エクセルで、日付を入力すると...
-
「ご処理進めて頂きますようお...
-
男性に対して、『女性への気遣...
-
内部処理形式ってなんですか
-
ハードウェア処理とソフトウェ...
-
カスタムドロー
-
VBA Progress barが動作しない
-
生ゴミ処理機の処理中のにおい...
-
VBAでCOPYを繰り返すと、処理が...
-
リョウ・・・量?料?
-
皆さんが1番信じているものはな...
-
VBAでループ内で使う変数名を可...
-
プロファイラ VC++6
-
Escキーを押しても中断されなか...
-
ifの条件式
-
Excelプロセスの起動
-
[Excel VBA]Doloop途中のifで処...
-
メルカリのメルカードで買い物...
-
インテル(R) Pentium(R) プロセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
switch の範囲指定
-
EXCEL VBA マクロ 実行する度に...
-
UMLでの例外処理
-
DoEventsがやはり分からない
-
月度は何て読みますか?
-
お家デートをしててハグを長い...
-
VB.NET Excelを読み込んでDataT...
-
VBの質問#if 0 then ってどう...
-
Do~Loopした回数をカウントしたい
-
VBAでCOPYを繰り返すと、処理が...
-
メルカリのメルカードで買い物...
-
インタラクティブの反対語は?
-
Loadイベント中にほかのイベン...
-
リョウ・・・量?料?
-
vba 空のデータをSplitする時の...
-
findは動くがfindnextがマクロ...
おすすめ情報