見出し画像

0から始めるExcel VBA講座(13): カレンダー作成マクロ(8):年を選ぶプルダウンメニューを作成

今回は、年を選ぶプルダウンメニューを作成していきます。今まで、テキストを入力したり、テキストの文字の大きさを変えたりよりは、少しだけ高度な事をしますので、マクロを作っている気分を味わえると思います。

まず最初に、カレンダー作成マクロ_0.5.xlsmを開き、ファイル名をカレンダー作成マクロ_0.6.xlsmに変更して保存してください。

プルダウンメニューを作成するには、以下のようにコード書いていきます。

With Cells(行, 列).Validation

    .Add Type:=xlValidateList, Formula1:="メニュー1,メニュー2,メニュー3"
    
End With

例えばA1のセルに、バナナ、リンゴ、イチゴが選択できるプルダウンメニューを作る場合、下記のように書きます。

With Cells(1, 1).Validation
    .Add Type:=xlValidateList, Formula1:="バナナ,リンゴ,イチゴ"
End With

意外に簡単ですよね。

では、Module5を作成してください。そして「Sub Create_Pull_Down_Menu()」として「Enter」キーを押してください。その後、下記のようにコメントを書いてください。

ではB6のセルに、プルダウンメニューで、2021年~2041年を選べるようなコードを記述して下さい。それほど、難しくないと思います。

では、実際に書いたマクロを実行して下さい。プルダウンメニューはできましたか?

もしプルダウンが出きていたら、もう一度マクロを実行してみてください。そうすると、下記のようなエラーが出るはずです。このエラーは、入力規則が既に設定されている場所に、新たに入力規則を設定しよとした為にデータエラーです。

このエラーを回避する為には、下記のようにコードを記述します。

With Cells(行, 列).Validation
    .Delete '入力規則の削除
    .Add Type:=xlValidateList, Formula1:="メニュー1,メニュー2,メニュー3"
End With

では、先ほど書いたコードを修正して、マクロを実行してみてください。
もうエラーはでなくなったと思います。

動作確認が完了したら、「ThisWorkbook」にもコードを追加して下さい。「ThisWorkbook」にコードを追加していたら、下記のようになっていると思います。


上記のようにマクロを記述しておけば、各モジュールに記載したマクロを一気に実行できるので、この部分は必ずアップデートしておいてください。

また、コメントにモジュール名と、そのモジュールは何を行うマクロなのか、必ず明記してください。このようにコメントを書いておけば、マクロを改修する時に、とても役に立ちます。

動作確認が完了したら、再度ファイル名をカレンダー作成マクロ_0.6.xlsmを保存して下さい。

今回の作業は以上になります。

お疲れさまでした。

この記事が気に入ったらサポートをしてみませんか?