昨日考えたコード
翌日、星くんは会社のPCに向かって、カタカタとキーボードを叩いています。
入力しているコードは、昨日、八木くんのマンションに向かう途中で考えたVBAのコードです。
Private Sub UserForm_Initialize()
Dim Zai As String
Dim i As Long
Dim r As Long
Dim c As Long
Zai = ActiveCell.Offset(0, -1).Value
Label1.Caption = Zai & "の規格一覧"
For i = 1 To Columns.Count
If Worksheets("規格一覧").Cells(1, i).Value = Zai Then
c = i
Exit For
End If
Next i
If c = 0 Then
Label1.Caption = Zai & "の規格が見つかりません"
CommandButton1.Enabled = False
Else
r = 2
Do Until Worksheets("規格一覧").Cells(r, c).Value = ""
ListBox1.AddItem Worksheets("規格一覧").Cells(r, c).Value
r = r + 1
Loop
End If
End Sub
※赤字の部分が、新しく入力されたコードです。
「うん!昨日、考えた通りのコードになったぞ!
規格一覧表に材質が見つからなかったとき、列を指定する変数cの値は"0"のままだ、
そのときはLabel1ラベルに、材質の規格が見つからなかった旨のメッセージを表示し、
[入力]ボタンであるCommandButton1のEnabledプロパティを"False"にして、
使用不可にする…」
星くんは、フンフンとうなずきながらコードを目で追います。
「…それ以外のときは材質が見つかったときだから、
変数cの列の規格をループ処理で、すべてListBox1にAddItemしてやる。
…と、For…Nextじゃないからカウンタ変数は使えないんだよな。
行を指定する変数rは、"r = r + 1"で、1を加算してやらなくちゃ…」
星くんは小さくガッツポーズをとります。