No.2ベストアンサー
- 回答日時:
マクロの問題だけではないと思います
まずはマクロから
’画面の更新を止める
Private Sub CommandButton2_Click()
Dim w_End As Long
Dim w_Loop As Long
Application.ScreenUpdating = False ’追加
・
・
・
End If
Next i
Application.ScreenUpdating = True ’追加
End Sub
’Selectを使わない
’(処理速度は変わりませんが、Wichの間にIf文を書いた方が、見た目スッキリすると思います)
・
・
With Range(Cells(i, 5), Cells(i, 87)).Borders(xlEdgeTop) ’変更するのはココ
If IsEmpty(Cells(i, 2)) Then
.LineStyle = xlDash
.Weight = xlHairline
.ColorIndex = xlAutomatic
Else
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End If
End With
・
・
’もしかすると、これが一番有効かも
’マクロ処理中、再計算を止める(手動にする)
Private Sub CommandButton2_Click()
Dim w_End As Long
Dim w_Loop As Long
Application.Calculation = xlManual ’追加
Application.ScreenUpdating = False
・
・
・
End If
Next i
Application.ScreenUpdating = True
Application.Calculation = xlAutomatic ’追加
End Sub
ダミーデータ1000行で、処理速度を各10回測定してみました
結果は
オリジナルコードで、平均4.5秒
〃 に画面更新禁止適用で、平均1秒
〃 にSelectを使わない適用で、平均1秒 でした
マクロ処理中、再計算を止めるは
>初めてまともに VBA を作りましたが、パフォーマンスが悪くて
マシンが止まってしまいます。
ダミーデータ1000行で処理しても、5秒前後の処理なので
後、考えられるのは、関数の再計算ぐらいしかないと思います
再計算の必要があるなら
END SUBの前に
ActiveSheet.Calculateを追加してください
以上、参考にしてみてください
No.1
- 回答日時:
このばあいはVBというよりVBAですね。
ヒントだけ。
罫線の引き方はマクロの記録で確認できます。
セルの内容はCellsやValueあたりをキーワードにさがせば見つかるかと。
初めてまともに VBA を作りましたが、パフォーマンスが悪くて
マシンが止まってしまいます。どこを直すか教えてください。
※対象行は 200~300行くらいあります。
Private Sub CommandButton2_Click()
Dim w_End As Long
Dim w_Loop As Long
w_End = Range("E65536").End(xlUp).Row 最後行取得
w_Loop = w_End - 1
For i = 9 To w_Loop 9行目から開始
If IsEmpty(Cells(i, 2)) Then セル:Bn が空白のとき点線
Bn~CInまで点線
Range(Cells(i, 5), Cells(i, 87)).Select
With Selection.Borders(xlEdgeTop)
.LineStyle = xlDash
.Weight = xlHairline
.ColorIndex = xlAutomatic
End With
Else 空白でない⇒実線
Range(Cells(i, 5), Cells(i, 87)).Select
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End If
Next i
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 罫線の横棒の隣に文字を書きたい 5 2022/11/28 17:31
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Excel(エクセル) Excelについて▶あるセルに文字を入力すると、別のセルに色がつく(条件付き書式) 1 2022/03/27 16:43
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/18 17:23
- その他(Microsoft Office) Excelの条件付き書式についての質問です。 2 2022/09/08 01:25
- Excel(エクセル) 条件付き書式で太罫線を引く方法 3 2023/05/29 12:17
- Excel(エクセル) エクセルの条件付き書式 3 2022/05/08 03:17
- Excel(エクセル) 【!】Excel 2つの条件付き書式が反映されません。。 5 2023/07/14 16:47
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
ExcelのVBA。public変数の値が...
-
メッセージボックスのOKボタ...
-
2つのマクロでチェックボックス...
-
エクセルのマクロについて教え...
-
Excel2013 VBA マクロ実行中に...
-
エクセルのマクロについて教え...
-
VBA初心者 Ctrl+での操作、ボタ...
-
エクセルで別のセルにあるふり...
-
エクセルのマクロについて教え...
-
Excelマクロを引数付で起動
-
「マクロ」の語源
-
エクセルのマクロについて教え...
-
レポートで空データ時に印刷しない
-
ユーザーフォームを起動しなが...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルで別のセルにあるふり...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
ExcelVBAでPDFを閉じるソース
-
EXCELのVBAでRange("A1:C4")を...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
マクロ実行時、ユーザーフォー...
-
Excelのマクロについて教えてく...
-
ソース内の行末に\\
おすすめ情報