トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 次なるイノベーション編: 第12話「若との飲み会」1/4 :さらに数日がたちました

やってみよう!Excel VBAで業務改善! 次なるイノベーション編|第12話 「若との飲み会」

さらに数日がたちました

それからさらに、数日がたちました。
泉先輩は、オーグチさんから依頼された「リスト入力の補助機能」の仕上げ作業に入っています。

「通常業務と掛け持ちで開発するのは大変ね…。
すっかり遅くなっちゃったわ」
カタカタとキーボードを叩いていた手が、ピタリと止まります。

    If リスト範囲設定(ListName, ListRange) = True Then
        '---ここからValidationでリストを設定するでござる
        Target.Validation.Delete
        Target.Validation.Add _
            Type:=xlValidateList, _
            Formula1:="=リスト設定!" & ListRange.Address
    End If

「うん。Validationのところは、こんな感じかしら?
まずは、Deleteメソッドで入力規則を削除、続けてAddメソッドで入力規則を追加する…と」
泉先輩は、小声でブツブツとつぶやきながらコードを確認していきます。

「引数のTypeにはxlValidateListでリストを、
引数のFormula1にはリストの元になるセル範囲を指定したいから…」
泉先輩は標準モジュールをダブルクリックして、マクロの記録のコードを確認します。

「うん。Formula1の参照式でセル範囲を設定している部分を、
こんな感じでListRangeに取得したアドレスに置き換えてやればいいんだわ」

    Formula1:="=リスト設定!$B$2:$B$12"
    ↓
    Formula1:="=リスト設定!" & ListRange.Address

別シートのセル範囲を直接指定できるのは、Excel 2007以降のバージョンになります。

一覧にもどる