トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 揺るぎない力編: 第13話「二人っきりで勉強会!?」3/4 :ちゃんと報告しなくっちゃ

やってみよう!Excel VBAで業務改善! 新たなる挑戦編|第13話 「二人っきりで勉強会!?」

ちゃんと報告しなくっちゃ

「やっぱり、材質が見つからなかったときの処理は、必要だよな~」 星くんはブツブツつぶやきながら、八木くんのマンションへ向かって歩きます。

「…俺としたことが、うっかりしてたよ。
ベーシックの試験に合格したことを、ちゃんと八木にも報告しなくっちゃ。
…ずいぶん勉強をみてもらったし、世話になったもんな」
歩きながらも、星くんの頭の中に、次々とVBAのコードが浮かんできます。

Private Sub UserForm_Initialize()
    Dim Zai As String
    Dim i 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
    
  変数cの値が「0」だったら
    材質が見つからなかった旨をラベルに表示する
    [入力]ボタンを使用不可にする
  それ以外ならば
    材質が見つかった列のすべての規格を、
    ループ処理でListBox1に、AddItemする
  条件分岐終わり

End Sub

「うん。多分、こんな感じでいけそうだ!
規格一覧表に材質が見つからないときは、一度も"c = i"の処理を行わない。
つまり変数cには、Long型の初期値の"0"が格納されているはずだ。
そのときは、材質が見つからなかった旨をラベルに表示する。
…おっと、このとき[入力]ボタンがクリックできてしまうと、面倒なことになりそうだな…。
EnabledをFalseにして、使用不可にした方がいいな…」
マンションが近づくにつれ、星くんの歩調も少しずつスピードアップしていきます。

「…それ以外のときは、材質が見つかったときだから、
その列のデータのある最終行をEndプロパティで取得して、ループ処理をする。
そしてすべての規格を、ListBox1にAddItemしてやればいいんだ。
…できる!思ったよりも、簡単にできそうだぞ!」
気がつくと、彼は八木くんの部屋の前に立っていました。

一覧にもどる