当サイトの記事にはプロモーションが含まれています。

Excelでプルダウンリストをマクロで設定する方法【初心者向け解決ガイド】

パソコンパソコン・スマホ教室
スポンサーリンク

皆さん、Excelでの作業中に「もっと効率的にデータ入力できないかな?」と思ったことはありませんか?

特に、入力ミスを防ぎたいときや、選択肢が多いときに便利なのがプルダウンリストです。今回は、このプルダウンリストをマクロ、つまりVBA(Visual Basic for Applications)を使って設定する方法を、初心者の方にもわかりやすく解説します。

スポンサーリンク

プルダウンリストとは?

まず、プルダウンリストについて簡単におさらいしましょう。Excelのプルダウンリストは、セルをクリックすると選択肢が表示され、その中からデータを選べる機能です。これにより、入力ミスを防ぎ、データの一貫性を保つことができます。

なぜマクロでプルダウンリストを設定するのか?

「手動で設定するのと何が違うの?」と思われるかもしれません。確かに、手動でもプルダウンリストは設定できますが、マクロを使うことで以下のメリットがあります:

ここがポイント!

  • 大量のセルに一括で設定できる
  • 動的にリストを更新できる
  • 作業の効率化と時間短縮

特に、同じ設定を複数のシートやブックに適用したい場合、マクロは非常に便利です。

マクロでプルダウンリストを設定する手順

では、具体的な手順を見ていきましょう。今回は、以下のステップで進めます。

  1. 開発タブの表示
  2. VBAエディターの起動
  3. コードの入力
  4. マクロの実行

1. 開発タブの表示

まず、Excelの「開発」タブを表示する必要があります。手順は以下の通りです。

  1. Excelのメニューから「ファイル」をクリック
  2. 「オプション」を選択
  3. 「リボンのユーザー設定」をクリック
  4. 右側のリストから「開発」にチェックを入れ、「OK」をクリック

これで、リボンに「開発」タブが表示されます。

2. VBAエディターの起動

次に、VBAエディターを起動します。

  1. 「開発」タブをクリック
  2. 「Visual Basic」を選択

これで、VBAエディターが開きます。

3. コードの入力

ここからが本番です。以下のコードを入力してみましょう。

/* VBAコード */
Sub プルダウンリスト設定()
Dim ws As Worksheet
Dim targetRange As Range

' シートと範囲を指定
Set ws = ThisWorkbook.Sheets("Sheet1") ' シート名は適宜変更してください
Set targetRange = ws.Range("A1:A10") ' プルダウンを設定したいセル範囲

' 既存のデータ検証を削除
targetRange.Validation.Delete

' プルダウンリストを追加
With targetRange.Validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="選択肢1,選択肢2,選択肢3" ' 選択肢はカンマで区切って入力
.IgnoreBlank = True
.InCellDropdown = True
End With

MsgBox "プルダウンリストを設定しました!"
End Sub

このコードでは、Sheet1のA1からA10のセルに「選択肢1」「選択肢2」「選択肢3」というプルダウンリストを設定しています。シート名やセル範囲、選択肢の内容はご自身の状況に合わせて変更してください。

4. マクロの実行

コードの入力が完了したら、マクロを実行してみましょう。

  1. VBAエディターの上部にある「実行」ボタン(緑の再生ボタン)をクリック
  2. Excelに戻り、指定したセル範囲にプルダウンリストが設定されていることを確認

うまくいけば、指定したセルにプルダウンリストが表示されるはずです。

よくある質問や疑問

Q1. プルダウンの選択肢を別のシートに保存して参照できますか?

はい、できます。選択肢を別のシートにリストとして作成し、その範囲を参照することで、選択肢の管理が容易になります。例えば、Sheet2のA1からA5に選択肢を入力し、以下のようにコードを変更します。

/* VBA */
With targetRange.Validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Sheet2!$A$1:$A$5"
.IgnoreBlank = True
.InCellDropdown = True
End With

Q2. プルダウンリストを動的に更新するにはどうすればいいですか?

選択肢が増減する場合、OFFSET関数とCOUNTA関数を組み合わせて動的な範囲を設定できます。例えば、以下のようにコードを変更します。

/* 基 */
With targetRange.Validation
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=OFFSET(Sheet2!$A$1,0,0,COUNTA(Sheet2!$A:$A),1)"
.IgnoreBlank = True
.InCellDropdown = True
End With

これにより、Sheet2のA列に新しい選択肢を追加するだけになります。

この記事を書いた人
この記事を書いた人

企業の情報システム部門で10年以上、PC・アカウント・社内ネットワーク・Microsoft 365/Google Workspace運用を担当。年間数百件の問い合わせ対応(PC不調、メール送受信、Excel/Word資料、Teams会議、スマホ連携など)を通じて、初心者がつまずくポイントを「再現→原因切り分け→最短解決」の手順に落とし込んできました

現場や身近で実際に起きたトラブルをベースに、手順だけでなく「なぜそうなるか」「失敗しやすい落とし穴」「安全な設定(セキュリティ)」まで含めて解説します。

相談窓口(問い合わせ/LINE等)を設け、記事で解決しないケースも個別にサポートしていますので「パソコンが急に動かなくなった」「スマホの設定がわからない」などの悩みは一人で抱え込まず、お気軽にご相談ください。

【お問い合わせは下記URLから】
https://m32006400n.xsrv.jp/inquiry-form/

【公式LINEは下記URLから】
https://lin.ee/t8TDjcj

uri uriをフォローする
スポンサーリンク
よかったらシェアしてね! /
uri uriをフォローする

コメント

タイトルとURLをコピーしました