メインコンテンツへスキップ

Excelのドロップダウンリストから選択した値に基づいてマクロを実行するにはどうすればよいですか?

コマンドボタンをクリックしてマクロを実行することはExcelの一般的なタスクですが、ドロップダウンリストから選択した値に基づいてマクロコードを実行しようとしたことがありますか? つまり、ドロップダウンリストからXNUMXつの項目を選択すると、特定のマクロが一度にトリガーされます。 この記事では、この仕事を解決するのに役立つコードを紹介します。

ドロップダウンリストから選択した値に基づいて、VBAコードでマクロを実行します


矢印青い右バブル ドロップダウンリストから選択した値に基づいて、VBAコードでマクロを実行します

このタスクを完了する直接的な方法はありませんが、次のVBAコードが役立ちます。次のようにしてください。

1。 まず、必要に応じてドロップダウンリストを作成します。スクリーンショットを参照してください。

ドロップダウン1からマクロを実行するドキュメント

2。 次に、使用するドロップダウンが含まれているシートタブを右クリックし、を選択します。 コードを表示 コンテキストメニューから、開いた状態で アプリケーション用のMicrosoftVisual Basic ウィンドウで、次のコードをコピーして空のモジュールに貼り付けます。

VBAコード:ドロップダウンリストから選択した値に基づいてマクロを実行します。

Private Sub Worksheet_Change(ByVal Target As Range)
	If Not Intersect(Target, Range("E1")) Is Nothing Then
	    Select Case Range("E1")
	        Case "Insert Blank rows": Macro1
	        Case "Hide All Sheets": Macro2
            Case "Convert to Date": Macro3
	    End Select
	End If
	End Sub

ドロップダウン2からマクロを実行するドキュメント

Note:上記のコードでは、 E1 セルにドロップダウンリストが含まれている場合は、マクロ名とドロップダウンリストの値を必要に応じて変更します。

3。 次に、このコードウィンドウを保存して閉じます。ここで、ドロップダウンリストから[空白行の挿入]項目を選択すると、Macro1がトリガーされます。


関連記事:

Excelでセル値が変更されたときにマクロを実行するにはどうすればよいですか?

Excelでセル値に基づいてマクロを実行するにはどうすればよいですか?

Excelで印刷する前にマクロを自動的に実行するにはどうすればよいですか?

Excelでハイパーリンクをクリックしてマクロを実行するにはどうすればよいですか?

ブックからシートを選択したときにマクロを実行するにはどうすればよいですか?

最高のオフィス生産性向上ツール

🤖 Kutools AI アシスタント: 以下に基づいてデータ分析に革命をもたらします。 インテリジェントな実行   |  コードを生成  |  カスタム数式の作成  |  データを分析してグラフを生成する  |  Kutools関数を呼び出す...
人気の機能: 重複を検索、強調表示、または識別する   |  空白行を削除する   |  データを失わずに列またはセルを結合する   |   数式なしのラウンド ...
スーパールックアップ: 複数の基準の VLookup    複数の値の VLookup  |   複数のシートにわたる VLookup   |   ファジールックアップ ....
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する   |  依存関係のドロップダウン リスト   |  複数選択のドロップダウンリスト ....
列マネージャー: 特定の数の列を追加する  |  列の移動  |  Toggle 非表示列の表示ステータス  |  範囲と列の比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   ビッグフォーミュラバー    ワークブックとシートマネージャー   |  リソースライブラリ (自動テキスト)   |  日付ピッカー   |  ワークシートを組み合わせる   |  セルの暗号化/復号化    リストごとにメールを送信する   |  スーパーフィルター   |   特殊フィルター (太字/斜体/取り消し線をフィルター...) ...
上位 15 のツールセット12 テキスト ツール (テキストを追加, 文字を削除する、...)   |   50+ チャート 種類 (ガントチャート、...)   |   40+ 実用的 (誕生日に基づいて年齢を計算する、...)   |   19 挿入 ツール (QRコードを挿入, パスから画像を挿入、...)   |   12 変換 ツール (数字から言葉へ, 通貨の換算、...)   |   7 マージ&スプリット ツール (高度な結合行, 分割セル、...)   |   ... もっと

Kutools for Excel で Excel スキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、生産性を向上させ、時間を節約するための300以上の高度な機能を提供します。  最も必要な機能を入手するにはここをクリックしてください...

説明


Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
Comments (7)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Codes help me and work very fine. Thanks a lot. Is there any way to get case value in a variable and then compare?
with best regards
This comment was minimized by the moderator on the site
A co jeśli potrzebuję aby po uruchomieniu makra wszystkie listy rozwijane ustawiły się na jeden z wyborów z listy? W sumie odwrotnie do tego co jest w poście. Czy istnieje na to łatwiejszy sposób?
This comment was minimized by the moderator on the site


FIRST CODE WORKING PERFECTLYPrivate Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D1")) Is Nothing Then
Select Case Range("D1")
         Case "0.5": Half
         Case "1": One
         Case "1.25": OneTwentyFive
End Select
End If
End Sub
SECOND CODE NOT WORKING (plz correct the below)
Private Sub Change(ByVal Target As Range)
If Not Intersect(Target, Range("D2")) Is Nothing Then
Select Case Range("D2")
         Case "9.53": ninepointfivethree
End Select
End If
End Sub
This comment was minimized by the moderator on the site
Good morning. Would you be able to do Macro from drop down menu for next: To run macro and save separated sheets for each item from Dropdown menu? In your case should be looking like this:
1. You run macro and then you have separated sheet with values for "Insert blank rows" saved in designated folder
2. Separated sheet with values for " Hide all sheets:" saved in designated folder
3. Separated sheet with values for " Convert to date" saved in designated folder.
4. Macro is done now


Mainly i am able do set all of this except that macro automatically change selection from drop down menu ?


Thanks


Ivan
This comment was minimized by the moderator on the site
Hola!

Al aplicarlo me sale un error de compilación: La declaración del procedimiento no coincide con la descripción del evento o el procedimiento que tiene el mismo nombre. Que quiere decir eso? que debo cambiar/arreglar? Gracias
This comment was minimized by the moderator on the site
Is there a way to use VBA code to do this in Access? Thanks
This comment was minimized by the moderator on the site
efectivamente funciona pero quiero aplicarlo en varias celdas, que variable debo cambiar?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations