割り込み計算、再計算を止める VBA よく使う小技
割り込みを止める
On Change などでフォームを計算させているパーツを使っているとき、割り込みをとめないと処理時間がかかってしかたない。その時の割り込みを止める方法。
とめる
Application.EnableEvents = false
再開
Application.EnableEvents = True
表の再計算を止める
再計算を無効にするApplication.Calculation = xlCalculationManual
再計算を有効にする
Application.Calculation = xlCalculationAutomatic
※止めた状態でデバッグ中プログラムを終了させると、割り込み、再計算が止まったままになるので焦らないように。
ひとつ再開、再割り込みを許可するサブルーチンを作ってそを起動させる。か、一度エクセルを止めて再起動すればいい。
'停止 sub break_stop Application.EnableEvents = false Application.Calculation = xlCalculationManual end sub '再開 sub break_run Application.EnableEvents = true Application.Calculation = xlCalculationAutomatic end sub
全角半角変換(数値とハイフン)
Function zhconv(strbuf) Dim i As Integer Dim ansData As Variant ansData = "" For i = 1 To Len(strbuf) If Mid(strbuf, i, 1) Like "[0-9]" Then ansData = ansData & StrConv(Mid(strbuf, i, 1), vbNarrow) ElseIf Mid(strbuf, i, 1) = "―" Then ansData = ansData & "-" Else ansData = ansData & Mid(strbuf, i, 1) End If Next i zhconv = ansData End Function
スポンサーリンク