VBAでAというExcelのbookをBというbookに1行ずつコピーする時のちらつきを無くしたいのですが、下記のようなコードだとおそらくコピー&ペーストを繰り返す時に行ったり来たりするからでしょうか画面が高速に切り替わってしまいます。
Sub test()
Dim A as Workbook
Dim B as Workbook
Dim firstLine as Long
Dim copyI as Long
Dim varFileName As Variant
Set A = Workbooks("A.csv")
Set B = Workbooks("B.xlsm")
copyI = 2
varFileName = dCsv
Workbooks.Open Filename:=varFileName
firstLine =B.Cells(Rows.count, "A").End(xlUp).Row
A.Application.ScreenUpdating = False
B.Application.ScreenUpdating = False
Do While A.Worksheets(1).Cells(copyI, 1).Value <> ""
A.Worksheets(1).Rows(copyI).Copy
B.Worksheets(1).Rows(firstLine + 1).PasteSpecial (xlPasteAll)
copyI = copyI + 1
firstLine = firstLine + 1
Loop
A.Application.ScreenUpdating = True
B.Application.ScreenUpdating = True
End Sub
どのようにすればそれを無くせるかご教示お願い致します。
No.1ベストアンサー
- 回答日時:
Workbooks.Open Filename:=varFileName
firstLine =B.Cells(Rows.count, "A").End(xlUp).Row
A.Application.ScreenUpdating = False
B.Application.ScreenUpdating = False
↓
Application.ScreenUpdating = False
Workbooks.Open Filename:=varFileName
firstLine =B.Cells(Rows.count, "A").End(xlUp).Row
'A.Application.ScreenUpdating = False Book毎にやる必要はないかと
'B.Application.ScreenUpdating = False
A.Application.ScreenUpdating = True
B.Application.ScreenUpdating = True
↓
Application.ScreenUpdating = True
'A.Application.ScreenUpdating = True こちらも
'B.Application.ScreenUpdating = True
Bookに対して画面更新を停めると言うよりExcelアプリに対してやるのではないかな。
ただ
>Workbooks.Open Filename:=varFileName
これの存在意味が不明なのですが、これ自体がサブであってメインが別にあるのなら画面更新はメインの最初で停めて最後で戻すのかも。
ありがとうございます。
まず、
Workbooks.Open Filename:=varFileName
なのですがA.csvをインポートするために記述しています。
質問の際に見やすいように実際のコードをシンプルにするために書き直したのですが、上手く出来ていなかったようです、すみません。
ちらつく問題なのですが、ご教示頂きました
Application.ScreenUpdating = False
を
Workbooks.Open Filename:=varFileName
の上に、
Application.ScreenUpdating = True
を
Loopの下に記述することで解消致しました。
ありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Excel(エクセル) 【マクロ】【VBA】同じフォルダ内にあるエクセルのデータを転記したい【ブック1からブック2へ】 9 2023/08/10 07:51
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
遷移元を判定したい!
-
三菱GOTの画面切り替えについて
-
ServletからServletへの値渡し
-
ASP.NET 画面遷移前の状態を保...
-
JAVAのセッション変数の上書き...
-
C# ログイン画面からメイン画面...
-
Python言語のAnacondaの話です ...
-
ServletからHTMLページへの遷移...
-
VBAでAというExcelのbookをBと...
-
Javaプログラミングの質問にな...
-
【JavaScriptわからない】1クリ...
-
アドレスバーに引数を表示させ...
-
javaのstrutsを使った画面遷移...
-
Wi-Fiのパスワードが指定なしと...
-
PC画面上に変化があった時、音...
-
JSPかサーブレットでオセロゲーム
-
画面を隠す・消す方法を教えて...
-
検索画面→結果画面→検索画面と...
-
ブラウザアドレスバーからのURL...
-
IE7での閉じるボタン等の画面ク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java-jspの画面入力値保持について
-
三菱GOTの画面切り替えについて
-
C言語で今まで表示していた画面...
-
ServletからServletへの値渡し
-
遷移元を判定したい!
-
C# ログイン画面からメイン画面...
-
ASP.NET 画面遷移前の状態を保...
-
Strutsの情報保持の仕方について
-
登録後、呼び出し元ページに戻...
-
ServletからHTMLページへの遷移...
-
JAVAのセッション変数の上書き...
-
system("cls")について
-
画像の縦横比固定の計算方法。
-
ブラウザアドレスバーからのURL...
-
画面を隠す・消す方法を教えて...
-
strutsで、JSP→アクションクラ...
-
セッション切れでのリクエスト...
-
MFCプログラミング
-
javaのstrutsを使った画面遷移...
-
FormのsubmitでFormの内容がnull
おすすめ情報