トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 揺るぎない力編: 第11話「オーグチさんの依頼は?」3/4 :簡単なところから少しずつ

やってみよう!Excel VBAで業務改善! 新たなる挑戦編|第11話 「オーグチさんの依頼は?」

簡単なところから少しずつ

「考えててもしょーがない。
とりあえず、簡単なところから始めるか…」
星くんはまず、規格一覧表をシートに作り始めました。

「規格一覧表は、すでに生産技術が作ったものがあるから、これをコピーするだけだ。
あっと…、一覧表は独立したシートにあったほうが、後々操作しやすいな。
[規格一覧]という名前のシートを挿入し、そこに一覧表をコピーしよう」

「よし。次は、[規格]列のセルを選択したときフォームが表示されるよう、
[材料費]のシートにイベントプロシージャを作成しよう」

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Row > 3 Then
        If Cells(3, Target.Column) = "規格" Then
            Frm規格入力.Show
        End If
    End If
End Sub

「…こんなとこか。
見積もりシステムの見出しは3行目、データは4行目以降にあるから、
まず" If Target.Row > 3 Then "で、選択されたセルが4行目以降…
つまりデータのある行かどうかを判定する。
次に、" If Cells(3, Target.Column) = "規格" Then "で、選択した列(Target.Column)の
3行目(見出し)が"規格"かどうかを判定する。
列が"規格"のときだけ、Showメソッドでユーザーフォームを表示する。
フォームの名前は、わかりやすく"Frm規格入力"でいいか」
シートモジュールにイベントプロシージャを作成すると、空のユーザーフォームを挿入し、
名前を「Frm規格入力」に変更しました。

「とりあえず、これで動くか試してみるか…」

「よし!」 データのある行の「規格」の列を選択したときはフォームが表示され、
それ以外ではフォームが表示されないことを確認すると、星くんはガッツポーズをとりました。

一覧にもどる