テキストエディタに保存してあるVBAのコードを、必要に応じてエクセルファイルにコピペ、対象の行数など細かい点を修正して使いまわしています。
繰り返し処理を行う行数はファイルによって異なりますが、数としてはそれほど変わりません。
しかしファイルごとに処理完了までのスピードが大きく異なります。
早ければ10~20秒ほどで終わりますが、ファイルによっては何分も待ちます。
その理由が知りたいです。
VBAを走らせるPCも、使用しているエクセルのバージョンも同じです。
バックグラウンドで起動しているソフトも、だいたいいつもメーラーとブラウザです。
ひとつ思い当る相違点は処理をする列「以外」の列のデータ量ですが、作業をする列以外のデータ量は処理速度に影響しますか?
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
処理を行ったBookが何度も上書き保存されてたとして、各ブックが全て同じ回数かどうかでもBookの肥大化で差が出るかもですね。
あとは保存等の繰り返しによるストレージの断片化が影響しているのかも?
⇒SSDでの速度低下については使用していないので不明ですけど。
他で言えばメモリを多く載せてもExcelアプリケーションが管理できる容量には限度があると思いますので、もし連続で処理をさせていての処理時間の違いをご指摘ならば、使用できるメモリの空きが少なくなって要領確保の処理をしているのかもですね。
No.4
- 回答日時:
>処理対象の列にはないのですが、シート単位で再計算が行われているということでしょうか。
処理対象の列を参照している個所は全て再計算が行われます。
処理対象の列を参照していない箇所が再計算が行われるかどうかは私はわかりません。
マクロの最初のほうで、画面表示更新抑止、自動再計算抑止を行い、
マクロの最後のほうで、上記をもとに戻せば、速くなります。
'画面表示更新抑止、自動再計算抑止
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
・・・処理・・・・
'自動再計算、画面表示更新
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
No.3
- 回答日時:
処理対象となっているシートに関数式が大量に埋め込まれていませんでしょうか。
セルの内容が変わると、その都度、再計算を行うため、関数式が大量にあると劇的に遅くなります。
再計算を抑止して、処理を行うようにすれば、その状況は改善可能です。
ご回答ありがとうございます。
確かに今回処理が遅かったシートには関数があります。
処理対象の列にはないのですが、シート単位で再計算が行われているということでしょうか。
No.2
- 回答日時:
関係ないかもしれませんが、大昔、何万件のエクセルデータをVBAで処理してた時、同じファイル(データ)なのに、何かの操作の拍子で桁違いに重くなる時がありましたね。
あれこれ原因を考えるのですが、結局、結論が出ず、新規作成でエクセルファイルを新しく作り、そこにデータを全コピー&ペーストしたらあっさり解決したことが多々ありました。
同様の質問をここで見たことありますが、やっぱり新規ファイルでエクセルファイルを作ってコピペしてあっさり解決したようですよ。
※原因は不明なんですが、経験則でいつもそうやって回避してました。
No.1
- 回答日時:
エクセルは中身を修正すると、表示データを全部”再描画”します。
この関係では無いですか?
また、そのシートにシェイプ(線画、図形)が有ると、輪を掛けて遅くなります。
シェイプの入ったシートを使い回して、「行や列毎に一機に削除してる」と油断してると、行・列・セルを削除しても一見シェイプは表示されなくなりますが、シェイプ自体は削除されません。
行・列・セルのコピーではシェイプはコピーされます。
結果としてシェイプが増殖されてしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
準・究極の選択
「年収1000万円で一生カレーライス」か 「年収180万円で毎日何でも食べ放題」 あなたはどちらを選びますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
EXCEL VBA マクロ 実行する度に処理速度がどんどん遅くなる原因が知りたい
Excel(エクセル)
-
同じマクロのプログラムなのに処理速度が違う
Visual Basic(VBA)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
VBAを何回も作り直して、容量が増えた
Excel(エクセル)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
〔Excel:VBA〕マクロの実行が異常に遅くなる
Excel(エクセル)
-
7
Excel VBA 処理後データが重たくなる&処理スピードが遅いのを解決したい
Visual Basic(VBA)
-
8
エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
Excel(エクセル)
-
9
Excel VBAが徐々に遅くなる
Excel(エクセル)
-
10
vba クリップボードクリアについて教えてください
その他(プログラミング・Web制作)
-
11
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
12
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
13
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
14
EXCELのVBAで作業ファイルを閉じてもメモリの解放をしなくて困っています
Excel(エクセル)
-
15
EXCEL VBAの実行速度の違いについて
Excel(エクセル)
-
16
VBAでCSVファイルが使用中かどうかの確認
Visual Basic(VBA)
-
17
エクセルVBA/イベント発生でコピペ不能はなぜ?
Excel(エクセル)
-
18
EXCELのSheet番号って変更できる!?
Visual Basic(VBA)
-
19
エクセル VBA find は別シートを検索できますでしょうか?
Excel(エクセル)
-
20
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで巨大なファイルの途中から...
-
VBAでCSVファイルの特定行を書...
-
ReadLineでの読み出し行を指定する
-
ExcelをCSV書き出す場合のシー...
-
Perlで特定行から特定行までを...
-
ifstream/ofstream について
-
chdirがうまくできない
-
ファイル名を複数個配列で確保...
-
fopenでディレクトリ内の全ファ...
-
C言語で特定の行を抽出する方法...
-
MySQLにバイナリデータを正常に...
-
XML::Parserの parsefileの結果...
-
パスから最後のディレクトリだ...
-
Perl 特定のフォルダ以外削除
-
大容量テキストファイルから任...
-
Perl で syntax error
-
空白文字 \\f と\\v の違いに...
-
perlのエディタでおすすめを教...
-
excel→txtファイル作成時、セル...
-
JSP URLに表示される拡張子 .jsp
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでCSVファイルを途中行まで...
-
エクセルVBA コードが同じでも...
-
VBAでCSVファイルの特定行を書...
-
ExcelをCSV書き出す場合のシー...
-
ReadLineでの読み出し行を指定する
-
openした後、closeしないでプロ...
-
JavaでCSVファイルを高速に読む...
-
VBAで巨大なファイルの途中から...
-
拡張子 ”log” と ” dat” の違い
-
csvファイル改行コードの置換に...
-
C言語でのファイルのデータ更...
-
VB6.0でDB接続する際に切断時の...
-
Perlの変数に文字数制限(容量...
-
Perl Vlookupみたいに
-
CSVファイルについて
-
MATLAB グローバル変数の宣言
-
エクセルVBAでCSVファイ...
-
VBScriptでファイル保存先のデ...
-
Monster'sの改造・・・ボスモン...
-
perlで、後ろの行を読んで、前...
おすすめ情報
データはセル内の文字・数字・数式のみで図形や画像はありません。