MENU

アプリの基本構造

説明に使う事例

本アプリで作成されるコードの説明を、商品名が「りんご」のときに、セルの色をにする事例で説明します。

f:id:The-Alchemist:20220217173210p:plain

アプリで作成されるコード

日本語の変数

変数は、コードが読みやすい、日本語変数です。

Dim  セル範囲 As String, セル As Range, 右下セル As String

Subが2つ!?

ひとつの処理に対して、2つの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  
           セル.Select

             Call  りんごを赤に_1_メイン処理(セル範囲)
      End If

 Next
End Sub    

上のSubは、「マクロの記録」で不可能な繰り返し・条件分岐・変数を使い、対象セル(オブジェクト)を決定します。

そして、下のSubを呼び出し(Call)ます。

Sub りんごを赤に_1_メイン処理  (セル範囲 As String)
 Selection.Offset(0,0).Interior.Color = RGB(255,0,0)
End sub   

下のSubは、決定した対象セル(Selection)プロパティ設定や、メソッド実行をします。

繰り返し

繰り返しは、For Eachを使います。

For Each セル In Range(セル範囲).Cells

 条件分岐
Next

上の例は、セル範囲にある各セルに下記の条件分岐をおこないます。

条件分岐

条件分岐はIf~Thenを使います。

   If セル.Value = "りんご"    Then  

          セル.Select

            Call  りんごを赤に_1_メイン処理(セル範囲)
   End If

上の例は、セルの値が”りんご”のとき、セルを選択し、メイン処理を行います。

なお、複雑な分岐処理は、アプリを使いセルエクセル関数入力します。

メイン処理

メイン処理で値(プロパティ)の設定、もしくは操作(メソッド)の実行をおこないます。

Sub りんごを赤に_1_メイン処理  (セル範囲 As String)
 Selection.Offset(0,0).Interior.Color = RGB(255,0,0)
End sub   

このメイン処理は、セルの色を”赤”にします。

連続トリガー

プログラム表示画面の下方にある「連続トリガー」をVBEに貼り付けると、連続した処理が、ワンクリックで可能です。

Sub りんごを赤に_連続トリガー() 
                         Call りんごを赤に_1()
                         Call りんごを赤に_2()
                         Call りんごを赤に_3()
End Sub

連続トリガーは、同一マクロ名のコードを枝番順に一括処理します。

マクロ名には、作成した順の枝番が自動で付きます。

(設定画面で、新たなマクロ名を使うと、枝番は1に戻ります)

まとめ

「マクロの記録」では不可能な最終セルの取得繰り返し条件分岐を、コード化できる点が本アプリの特徴です。

アプリはこちらから↓↓↓↓