Excel

サクラエディタでVBAのステップ数を数える

投稿日:2020年4月18日 更新日:

サクラエディタの正規表現を使って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ステップであることが確認できます。

今回は以上です。

-Excel

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

【Excel】リスト化をIndirectで実行する際の文字制限

セルをIndirectで動的にリスト化しようとした際、躓いたことを記事にします。 まずは、シート上を以下のように準備します。 B1をA1の内容に合わせて動的にリスト化します。例えば、A1に北海道と入力 …

【SAS】SASで良く使うテクニック。その5 「SUM関数」~データセットの差分がいくつあるのか数えたい時~【Excel】

今回はSASで良く使うテクニックということで、データセットの差分がいくつあるのか数えたいときは「SUM関数」が役に立つ理由を解説していきます。 (参考:【SAS】SASで良く使うテクニック。その1 E …

DoEvents(マクロ実行中に画面操作する)

VBAの学習で、DoEventsを使ったシステムを作成したので今回記事にします。 まずは、シート上を以下のように準備します。 そして以下のソースコードを記述し、実行していきます。 Public Sto …

ActiveCellを使うと想定外の動きをする件【Excel】【VBA】

VBAでActiveCellを使ったコードを書いた際に、少し躓いたため今回記事にします。 まずは、シート上を以下のように準備します。A1セルはリスト化し、「1」「2」「3」が選択できる状態にします。 …

コマンドボタンを挿入してマクロを実行する方法

今回はExcelのシートにコマンドボタンを挿入してマクロを実行する方法について解説します。 [目次] 1.通常のマクロ実行2.コマンドボタンでマクロ実行 1.通常のマクロ実行 通常マクロを実行するとき …