トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 揺るぎない力編: 第12話「規格入力フォームを作ろう」2/4 :とりあえずコードを書こう!

やってみよう!Excel VBAで業務改善! 新たなる挑戦編|第12話 「規格入力フォームを作ろう」

とりあえずコードを書こう!

星くんがうなり声をあげながら考えます。
頭から湯気が出そうです。

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

End Sub

「…とりあえず、ここまで考えたぞ。
材質の入力されているセルは、規格列の1つ左隣だ。
だから、規格のセルが選択されたとき、"ActiveCell.Offset(0, -1).Value"で、
1つ左のセルの値を取得し、変数Zaiに格納する。
変数Zaiには、選択した行の材質が代入されているはずだ」
小声でブツブツつぶやきながら、星くんはコードを目で追います。

「まずはこの材質に、"の規格一覧"の文字列を連結して、Label1ラベルのキャプションにする。
これでユーザーは、選択した材質が間違いなく処理の対象になっていることを、確認できるぞ」
星くんがフンとうなずきます。

「次は、材質の規格が入力されている、規格一覧シートの列を探すんだ。
For…Nextステートメントで規格一覧シートの全列に対して、1行目セルの値と変数Zaiを比較する。
Ifステートメントの"Worksheets("規格一覧").Cells(1, i).Value = Zai"の条件が満たされるとき、
お目当ての材質が見つかった、ということになるから…
"c = i"で、その列番号を変数cに取得し、"Exit For"でループを抜ける………と」
フンフンうなずきながらコードを確認する星くんは、定時のチャイムが鳴ったことに気がつきません。

「…いいじゃないか。ここまでは、オッケーだぞ。
次は、この列番号を使って…」
星くんの背後に、岬さんがソーッと近づきます。

一覧にもどる