説明に使う事例
本アプリで作成されるコードを、セルの値が「りんご」のときに、セルの色を赤にする事例で説明します。
アプリで作成されるコード
日本語の変数
本アプリの変数は、コードが読みやすい日本語です。
Dim セル範囲 As String, セル As Range, 右下セル As String
Subが2つ
ひとつの処理に対して、2つのSubが作成されます。
上のSub
Sub りんごを赤に_1() '色変更
Dim セル範囲 As String, セル As Range, 右下セル As String
Sheets("sheet1").Select
Range("C2").Select◆最終行を取得し、セル範囲を決める
Range(Selection,Selection).CurrentRegion.Select
右下セル = Cells(Selection.Row+ Selection.Rows.Count-1, Range("C2").Column).Address(False, False)
セル範囲 = "C2" & ":" & 右下セル◆繰り返し
For Each セル In Range(セル範囲).Cells◆条件分岐
If セル.Value = "りんご" Then
セル.SelectCall りんごを赤に_1_メイン処理(セル範囲)
End IfNext
End Sub
上のSubでは、繰り返し(For Each~Next)・条件分岐( If~End If)を使い、対象セル(オブジェクト)を選び(Select)ます。そして、下のSubを呼び出し(Call)ます。
下のSub
Sub りんごを赤に_1_メイン処理 (セル範囲 As String)
Selection.Offset(0,0).Interior.Color = RGB(255,0,0)
End sub
下のSubでは、対象セル(Selection)に値(プロパティ)の設定や、処理(メソッド)の実行をします。
上の例は、セルの色を”赤”にします。
連続トリガー
プログラム表示画面の下方にある「連続トリガー」をVBEに貼り付けると、作成済みのコードを連続して実行可能です。
Sub りんごを赤に_連続トリガー()
Call りんごを赤に_1()
Call りんごを赤に_2()
Call りんごを赤に_3()
End Sub
マクロ名には、作成した順の枝番が、自動で付きます。
連続トリガーは、その枝番順に、一括処理します。
(設定画面で、新たなマクロ名を使うと、枝番は1に戻ります)
まとめ
エクセルの「マクロの記録」は、最終セルの取得、繰り返し、条件分岐ができません。
一方、本アプリは、それらをコード化できる点が特徴です。