• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロの実行スピードを速くする方法を教えてください)

マクロの実行スピードを速くする方法

このQ&Aのポイント
  • マクロの実行スピードを向上させるためには、以下の点に注意する必要があります。
  • 1. 冗長な処理を削除する:マクロ内の不要な処理や重複した処理を削除し、効率的なコードにする。
  • 2. 変数の使用:各処理で使用するデータを変数に格納し、処理を高速化する。

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

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

文字の書きかえや、セル書式の変更を伴う処理が発生する場合は以下を行いましょう。 幾分早くなるかと思います。 また、セル指定のオブジェクトはRangeより、Cellsを利用したほうが良いかと思います。 ▼画面更新の停止・再開 '処理の初めに Application.ScreenUpdating = False '処理の最後に Application.ScreenUpdating = true 数式が多量に有る場合ですと、以下も効果的かと。 ▼自動計算のON・OFF 'OFF Application.Calculation = xlCalculationManual 'ON Application.Calculation = xlCalculationAutomatic

kisaragijec
質問者

お礼

eden3616さん、ありがとうございます。 cellsの書き方がよくわからないのですが、 '列幅指定 Const W4 As String = "A1,V1" Const W2 As String = "B1" Const W3 As String = "C1" Const W20 As String = "D1,E1,AH1" Const W10 As String = "F1,K1,L1,P1,Q1,R1,S1,Y1,Z1,AC1,AD1,AE1,AP1,AQ1,AR1,AS1" Const W8 As String = "G1,I1,J1,M1,T1,X1,AF1,AG1,AM1,AT1,AU1,AV1" Const W16 As String = "H1,N1,O1,U1,AB1,AH1,AN1,AO1" Const W6 As String = "W1,AA1" Const W12 As String = "AJ1,AK1,AL1" Range(W4).ColumnWidth = 4 Range(W2).ColumnWidth = 2 Range(W3).ColumnWidth = 3 Range(W10).ColumnWidth = 10 Range(W12).ColumnWidth = 12 Range(W20).ColumnWidth = 20 Range(W10).ColumnWidth = 10 Range(W8).ColumnWidth = 8 Range(W16).ColumnWidth = 16 ここはどう書き換えたらいいのでしょうか? よろしくお願いします。

その他の回答 (1)

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.2

書き換えの件ですが、たぶん書いてあるのが一番ステップが短く、 処理速度も速いんで、そのコードが読めるなら、別にそのままでも 問題なしです。 要は「画面表示を停止」「計算は後で」すると速くなるってことです。

kisaragijec
質問者

お礼

FEX2053さん、ありがとうございます。 いろんなHPからコードを探し出して書き換え、つなぎ合わせたので遅いのかと思っていました。 50列、幅を変えるのに15秒ぐらいかかっています。 それが4シートあるので、1分かかるのです。 画面表示停止、計算は最後にするようにしましたが、あまり変わりませんでした。

関連するQ&A