サクラエディタの正規表現を使ってVBAソースコードのステップ数を数えてみたいと思います。
以下のソースを準備します。
Public StopFrag As Boolean '一時停止フラグ
Dim inner As String 'セルに入力する"123"格納用変数
Dim i As Integer '行位置カウント用変数
Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long) 'API使用のため宣言
'セルに"123"を記入していく。チェックボックスの状態により一時停止と再開を行う。
Sub スタート()
i = 1
inner = "123"
Do While i < 21 '20行まで
DoEvents '処理中でもチェックボックスが有効になる。
StopFrag = ActiveSheet.CheckBox1.Value 'チェックボックスの状態を(True or False)で取得する。
Do While StopFrag = True 'チェック有 チェックボックスのステータスを確認して中断、再開
Sleep 500 'インターバル0.5秒
DoEvents '処理中でもチェックボックスが有効になる。
StopFrag = ActiveSheet.CheckBox1.Value 'チェックボックスの状態を(True or False)で取得する。
Loop
Cells(i, 1).Value = inner '"123"をセル(1,1)から順に入力していく。
i = i + 1 '次の行
Sleep 500 'インターバル0.5秒
Loop
End Sub
このソースは過去記事で扱ったものをそのまま利用しています。ソース解説は内部リンクから見ることができます。
今回はソースコードの中身を①~③から成り立っていると想定します。
①エンター行(タブのみの行もエンター行とする)
②コメント行
③本文
③のみをカウントします。
ソースコードをサクラエディタにコピーします。
この時点で39行存在することがわかります。
「検索タブ」→「置換」を選択します。
置換前に「^\r\n|^\s*\r\n」を入力し、「正規表現」にチェックを入れ、「該当行マーク」をクリックします。
先ほどの「①エンター行(タブのみの行もエンター行とする)」が黄色くマークされたことが確認できます。
「置換画面」で「すべて置換」をクリックします。
「18箇所を置換しました。」と表示されました。
エディターの編集画面上では18行取り除かれたことが確認できます。
再び「置換画面」を開き、置換前に今度は「^\s*’.*」を入力し、「該当行マーク」をクリックします。
コメント行が黄色くマークされたことが確認できます。
「置換画面」で「すべて置換」をクリックします。
「1箇所を置換しました。」と表示されました。
エディターの編集画面上では1行取り除かれたことが確認できます。
ただしコメント行がエンター行に置換されただけなので、エンター行を取り除きたい場合は再び「置換画面」で置換前に「^\r\n|^\s*\r\n」を入力し、「すべて置換」をクリックします。
最終的にソースコード本文が20ステップであることが確認できます。
今回は以上です。