リストボックスの活用~応用②

Pocket

通信費のコマンドボタンを押したときに、通信費に該当する摘要のみを表示させます。
前回の内容はこちらから。
ユーザーフォームのコマンドボタン1(通信費)をクリックしたときのコードです。

Private Sub CommandButton1_Click()
Dim i As Integer
Dim j As Integer
Dim match As Boolean
For i = 1 To Range(“摘要”).Rows.Count – 1
match = Range(“摘要”).Cells(i, 2) = 1
If match Then
ListBox1.AddItem Range(“摘要”).Cells(i, 1)
End If
Next i
End Sub

このブログで初めて出てきたデータ型が、Boolean型です。
Boolean型はTrueかFalseを返すデータ型です。

変数を宣言した後、摘要という名前で定義した範囲の行数をカウントします。
最後に1を引いているのは、最後の行が空白なので、
2510264
上の図の例では、12ではなく11とカウントします。

iの回数つまり11回
①match = Range(“摘要”).Cells(i, 2) = 1
②If match=True Then
③ListBox1.AddItem Range(“摘要”).Cells(i, 1)
End If
この処理を繰り返します。
①では、摘要のB列が1かどうか判断させます。
そして③では①がTrueならば、リストボックスにA列の値を追加する。

具体的には、
B1の値が1なので、matchはTrueになり、リストボックスに電話代を追加する。
B2の値が2なので、matchはFalseになり、リストボックスに印紙代は追加しない。
B3の値が2なので、matchはFalseになり、リストボックスに固定資産税は追加しない。
・・・
B11の値が3なので、matchはFalseになり、リストボックスに掃除用具は追加しない。
といった流れになります。

実際にマクロでユーザーフォームを表示させ、通信費のコマンドボタンをクリックしたときの
実行結果です。
2510262

リストボックスの使い方もだいぶ高度になってきましたが、これ以上のレベルは
必要ないので、頑張ってついてきて下さい。
そしてこれができるようになるとExcelの可能性はグッと広がります。