No.5ベストアンサー
- 回答日時:
計算方法を自動計算にしているとA列に値を入れる都度、再計算が行われるので負担になる場合があります。
そこで、計算方法を手動計算にしてから目的の処理を行い、終了時に自動計算に戻すようにすると場合によっては早くなるかもしれませんので、お試しください。
自動、手動の切り替えはこんな感じです。
Application.Calculation = xlManual '手動にする
・
・
Application.Calculation = xlAutomatic '自動に戻す
No.6
- 回答日時:
' 配列を作成し、範囲に一度で投入します
Dim a(1 To 300) As Variant
Dim n As Long
For n = LBound(a) To UBound(a)
a(n) = "=VLOOKUP(B" & CStr(n) & ",C:C,1,FALSE)"
Next n
Me.Range("A1:A300").Formula = a
' 範囲の FormulaR1C1 に一度で投入します
Me.Range("A1:A300").FormulaR1C1 = "=VLOOKUP(RC[1],C[2],1,FALSE)"
ありがとうございます。当方は単純なものしか記述できないため、ご指摘のコードは大変難しいです。variant型もlong型も使ったことがありません。
いろいろ調べましたが、添え字の初めの整数と最後の整数を取得してfor文でaに格納し、一度に書き出す…ということだと思います。
大変勉強になります。
No.4
- 回答日時:
no.3
可能性はもう1個。
オートシェイプが増殖してませんか?
セルやシートのコピペを行なったり、更新するとどんどん増えます。
一度シェイプ全削除して見て下さい。
(画像も消えるのが難点)
For Each oShape In ActiveSheet.Shapes
oShape.Delete
Next
たびたびありがとうございます。幸いオートシェイプは使っておらず、単純にセルの値を参照して書き出しをするだけの処理になります。ただ、そのセルはVLOOKUP関数など、すべてのセルに関数が入っております。しかもifで分岐するなど、かなり複雑になっております。これが遅くなる原因になるでしょうか。
No.3
- 回答日時:
エクセルに値を入れると、入れた値が見えます。
2と入れると、セルに2が表示されます。
これはエクセルがセル内容の表示を更新表示しているからです。
データ量が多くなればなるほど、いちいちセル内容を表示更新するのですから、スピードがガクンと遅くなります。
セルの値を更新したり入力している時には、表示更新をstopしておけばスピードが速くなります。
Application.ScreenUpdating = False : 表示更新停止
Application.ScreenUpdating = true : 表示更新再開
No.2
- 回答日時:
エクセルのマクロは知りませんが、そのデータファイルをメモリー上に読み込み、一気に検索させるようにはできないのですか? それがこういう場合、普通の高速化手段だと思います。
マクロではありませんが、RAMDISK上にコピーするとかもありかな?
ありがとうございます。
配列変数はせいぜい1~2で、その配列は多くても15程度です。ですのでメモリの読み込みは多くはないかと思います。
特にfor文で、他シートを参照して書き込む を繰り返し、条件に合わなかったらfor文を抜け出す、といった処理が遅く、困っております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
EXCEL VBA マクロ 実行する度に処理速度がどんどん遅くなる原因が知りたい
Excel(エクセル)
-
エクセルVBA コードが同じでもファイルによって処理速度が大きく変わるのはなぜ
Visual Basic(VBA)
-
〔Excel:VBA〕マクロの実行が異常に遅くなる
Excel(エクセル)
-
-
4
プログラムの実行時間
C言語・C++・C#
-
5
Excel VBAが徐々に遅くなる
Excel(エクセル)
-
6
EXCEL VBAの実行速度の違いについて
Excel(エクセル)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
VBAのfor...next構文で i = A to Z としたい。
PowerPoint(パワーポイント)
-
9
【VBAユーザーフォームで閉じるボタンを表示したくない】
Visual Basic(VBA)
-
10
同じマクロなのに結果が違う
Excel(エクセル)
-
11
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
12
VBAを何回も作り直して、容量が増えた
Excel(エクセル)
-
13
Excelでのセル内容の高速消去方法
その他(プログラミング・Web制作)
-
14
エラーになってないのにVBAが中断される
Excel(エクセル)
-
15
エクセルVBA 配列からセルに「関数式」を一気代入したい
Visual Basic(VBA)
-
16
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
17
2画面表示でのVBAのボタン押下後のform表示の位置
Excel(エクセル)
-
18
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
19
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
20
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
【Excel】指定したセルの名前で...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
特定の文字を条件に行挿入とそ...
-
VBA コピーして次の値まで貼り...
-
【Excel VBA】指定行以降をクリ...
-
screenupdatingが機能しなくて...
-
EXCELで変数をペーストしたい
-
VBAを使用した時間管理
-
VBAでセルをクリックする回...
-
Excel2003 複数セル1列の入力済...
-
VBA 検索と入力 Excel ブック ...
-
VBAでマクロ実行中はExcelのマ...
-
Excelで指定した日付から過去の...
-
VBA ユーザーフォーム ボタンク...
-
DataGridViewのセル編集完了後...
-
連続する複数のセル値がすべて0...
-
【EXCEL VBA】Range("A:A").Fi...
-
excelのマクロについて教えて下...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
特定の文字を条件に行挿入とそ...
-
Excel VBA、 別ブックの最終行...
-
EXCELで変数をペーストしたい
-
Excelのプルダウンで2列分の情...
-
TODAY()で設定したセルの日付...
-
Excel vbaで特定の文字以外が入...
-
screenupdatingが機能しなくて...
-
DataGridViewの各セル幅を自由...
-
Sub 要具ライフ() ActiveSheet....
-
【EXCEL VBA】Range("A:A").Fi...
-
VBAを使用した時間管理
-
VBAでセルをクリックする回...
-
セル色なしの行一括削除
-
エクセルVBAでコピーして順...
おすすめ情報