VBAでプルダウンを追加・解除する|ボタンのイベントで実行:Excel Tips

プルダウンの設定はValidationオブジェクトを使用し、追加はAddメソッドで、解除はDeleteメソッドで行います。

Validationオブジェクトのメソッド

  • Add : 追加を行います
  • Delete : 削除を行います
  • Modify : 変更を行います

Validationオブジェクトのプロパティ

  • AlertStyle : エラーのスタイルを取得する
  • Application : オブジェクトを返す
  • Creator : オブジェクトを作成したアプリケーションを32 ビットの整数値で返す
  • ErrorMessage : 入力規則でのエラーメッセージを取得または設定する
  • ErrorTitle : 入力規則のエラーメッセージ ダイアログボックスのタイトルを取得または設定する
  • Formula1 : 使用されている値またはオブジェクト式を返す
  • Formula2 : 2番目の部分に使用されている値またはオブジェクト式を返す
  • IgnoreBlank : Trueの場合、入力規則で特定のセル範囲への空白値の入力を許可する
  • IMEMode : 日本語の入力の設定
  • InCellDropdown : Trueの場合、ドロップダウンリストを表示する
  • InputMessage : 入力メッセージを取得または設定する
  • InputTitle : 入力メッセージのタイトルを設定する
  • Operator : 入力規則の演算子を表す長整数型の値を、取得または設定する
  • Parent : オブジェクトの親オブジェクトを取得する
  • ShowError : Trueの場合、無効なデータを入力された場合エラーメッセージを表示する
  • ShowInput : True の場合、入力規則のセル範囲を選択すると入力メッセージを表示する
  • Type : セル範囲に設定されている、入力規則の種類を表す長整数型の値を返す
  • Value : セル範囲に含まれるデータが、入力規則に合った有効なデータであるかどうかをブール型で取得する
Homeに戻る > Excel セルのTipsへ



VBAでプルダウンを追加する

下のコードになります。
プルダウンリストに、1月から5月までの5件を設定しています。
VBAでプルダウンを追加する

xlValidateList は、Typeプロパティの定数でリストを指定します。

Private Sub CommandButton1_Click()
    Range("E2").Cells.Validation.Add Type:=xlValidateList, _
         Formula1:="1月,2月,3月,4月,5月"
End Sub

実行結果です。
設定したセルに移動すると▼が表示され、クリックすると表示されるリストから選択できます。
プルダウン追加の実行結果

VBAでプルダウンを解除する

下のコードになります。
ValidationオブジェクトのDeleteメソッドを使用します。
VBAでプルダウンを解除する

Private Sub CommandButton2_Click()
    Range("E2").Validation.Delete
End Sub

プルダウンを作成するとエラーになる

上の追加するVBAを実行すると、2回目からは下の「実行時エラー1004:アプリケーション定義またはオブジェクト定義のエラーです。」とエラーになります。
プルダウンを作成するとエラーになる

原因は連続して同じセルにプルダウンを追加できないためです。
対策として、追加前にプルダウンを削除します。
これでエラーは発生しません。
追加前にプルダウンを削除する
Homeに戻る > Excel セルのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved