Excelでデータ入力を簡単にするために、プルダウンリストを設定することは多くの方が利用しています。しかし、プルダウンリストで「一度選択するとリストが部分的にしか表示されなくなる」という問題に悩むことも多いのではないでしょうか?
本記事では、VBA(Visual Basic for Applications)を使用して、常に候補リスト全体を表示するプルダウンリストをExcelに設定する方法について解説します。VBAを使用したこのカスタムプルダウンリストなら、どんな場合でもリスト全体が表示されるようになります。ぜひ参考にして、Excelの入力効率を向上させてください!
Excelでプルダウンリストを設定する基本
Excelの基本機能でプルダウンリストを設定する場合、「データの入力規則」を使用します。以下の手順で簡単にリストを作成できます。
- リスト項目を準備:まず、候補として使いたい項目をExcelのセル範囲に入力します(例:
A1:A10)。 - セルの選択:プルダウンリストを表示させたいセルを選択します(例:
D1)。 - データの入力規則を設定:
- Excelの「データ」タブから「データの入力規則」をクリックし、「リスト」を選択します。
- 「元の値」欄に候補リストの範囲(例:
$A$1:$A$10)を入力してOKを押します。
これで、D1セルにプルダウンリストが表示されます。しかし、この方法では一度候補リストから選択すると、次回以降は部分的なリストしか表示されなくなります。この問題を解決するために、次章で紹介するVBAコードを使って「常にリスト全体を表示するプルダウンリスト」を実装してみましょう!
Excel VBAで常にリスト全体を表示するプルダウンリストを実装
以下のVBAコードは、D1セルに入力する際、常に最初の候補リスト全体を表示するプルダウンリストを作成します。この方法なら、選択済みの内容にかかわらず、再度候補リスト全体が表示されます。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Dim rng As Range
Dim cell As Range
Dim fullList As String
' 候補リストのシートと範囲を設定
Set ws = ThisWorkbook.Sheets("候補リストシート") ' リストがあるシート名に変更
Set rng = ws.Range("A1:A10") ' 候補リストの範囲に変更
' D1セル以外は処理しない
If Target.Address <> "$D$1" Then Exit Sub
' 候補リスト全体を生成
fullList = ""
For Each cell In rng
If cell.Value <> "" Then
fullList = fullList & cell.Value & ","
End If
Next cell
fullList = Left(fullList, Len(fullList) - 1) ' 末尾のカンマを削除
' 常にリスト全体をプルダウンリストに表示
With Target.Validation
.Delete ' 一度削除して再設定
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=fullList
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = False
End With
End Sub
コードの解説
- 候補リストの範囲を指定:
Set ws = ThisWorkbook.Sheets("候補リストシート")とSet rng = ws.Range("A1:A10")で、候補リストがあるシートと範囲を指定します。 - 入力セルの条件を指定:
If Target.Address <> "$D$1" Then Exit Subで、D1セル以外でこのVBAが動作しないようにしています。 - 候補リスト全体を生成:リスト範囲の内容を文字列として結合し、カンマ区切りの候補リストを生成します。
- プルダウンリストの更新:対象のセル(
D1)に対して、常に候補リスト全体をプルダウンに表示させる設定を適用します。
これにより、どんな入力をしても候補リストが常にプルダウンで表示されるようになります。
VBAプルダウンリストのカスタマイズで業務効率を向上
このようなVBAを活用することで、Excelのプルダウンリストをさらに使いやすくカスタマイズできます。また、複数のセルで同じ設定を適用することも可能です。Excel VBAを使ったデータ入力の自動化やカスタマイズは、業務効率の向上に大いに役立つので、ぜひ試してみてください。
参考になれば、幸いです。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
