トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 揺るぎない力編: 第25話「支給品管理システムを修正しよう!」3/4 :コードを1行ずつ確認

やってみよう!Excel VBAで業務改善! 新たなる挑戦編|第25話 「支給品管理システムを修正しよう!」

コードを1行ずつ確認

星くんは、自分が作成したコードを、1行ずつ確認していきます。
作ったのは、かなり以前なので、コードの内容をすっかり忘れていました。

「ボタンを廃止するということだから、この呼び出し部は、もう使えない。
この部分に該当する機能を、ワークシートのモジュールに、イベントプロシージャで作成すればいいのか…」
星くんは、プロジェクトエクスプローラから、ワークシートのアイコンをダブルクリックします。
コードウィンドウにモジュールが表示されました。

「…ダブルクリックしてフォームを呼び出すのだから、
Worksheet_BeforeDoubleClickのイベントプロシージャを使うんだよな…。
ダブルクリックしたセルは、引数Targetで渡されるから…」
星くんがカタカタと、コードを打ち込んでいきます。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Row >= 5 Then
        If Target.Column = 1 Then
            Cancel = True

        End If
    End If
End Sub

「うん。こんな感じかな。
支給品のデータが入力されているのは、シートの5行目以降だから、
"Target.Row >= 5"と、5以上の行を処理の対象にする。
1~4行はヘッダ行だから、処理の対象外だ。
次に、オーダーNoのセルをダブルクリックしたとき、フォームを呼び出すから、
"Target.Column = 1"と、A列のセルのみ、処理の対象にする…と、
ここまできたら、ダブルクリック本来の挙動を、"Cancel = True"でキャンセルしてと…」

一覧にもどる