itLinkedInB!HatenaLINELINE疑問がある人VBAでドロップダウンリストを設定するとどんなことが出来るの?こんな疑問にお答えします。結論から言うと、VBAを使えばリスト内容が自動的で変化するドロップダウンリストを設定できる!です。VBAを使わずにエクセルのツールバーの機能からドロップダウンリストを設定するだけでも手入力作業の省力化につながりますが、VBAを使ってドロップダウンリストを設定することでリストから項目を選択する行為の省力化を追加することができます。記事で紹介しているサンプルVBAを見ると納得して頂けるはずです。この記事を参考にすることで得られる効果がこちらPointVBAを使ってドロップダウンリストを設定できるようになるリスト内容が変化するドロップダウンリストを設定できるようになる一覧表からドロップダウンリストを設定できるようになる紹介されている「VBAでドロップダウンリストを設定する方法」をマスターすればいろんな業務に応用することが可能になります。ドロップダウンリストを取り入れてエクセル作業の効率をアップさせたい!と考えている方は是非参考にしてみてください。VBAを使ったドロップダウンリストの設定は外注依頼がおすすめ広告そもそもドロップダウンリストってなに?そもそもドロップダウンリストとはセルに直接テキストを入力するのではなく、あらかじめ設定したリストを呼び出しリストの中から項目を選択しセルに入力できるというプログラムのことです。困った人ドロップダウンリストは他にもプルダウンと言わればすが、どっちの方が正しいのか、違いがあるのかはわかりません。具体的には下の図のような処理が可能になります。ドロップダウンリストが設定されたセルをクリックするとあらかじめ設定しておきたリストが表示される。今回のリストは「〇」と「×」の2つのテキストだけです。表示されたリストから入力したい項目をクリックするだけでテキストを入力することができます。同じ入力内容の繰り返し!ある程度決まっている用語しか入力することがない!という作業にドロップダウンリストの設定が有効です。VBAを使ってドロップダウンリストの設定をする方法VBAを使ってドロップダウンリストを設定するにはvalidation.addメソッドと引数Targetを利用します。この2つのVBAを組み合わせることでセルをクリックしてドロップダウンリストを表示させるという処理が可能に。「validation.addメソッド」と「引数Target」について解説していきます。指定した範囲にデータの入力規則を追加するというVBAです。入力規則の種類を指定します。入力規則でのエラーのスタイルを指定します。データ入力規則の演算子を指定します。データ入力規則での条件式の最初の部分を指定します。参考書やネットで「VBAを使ったドロップダウンリストの設定方法」と調べると上記のような構文やパラメータの解説記事がほとんど。構文やパラメータと言われてもよくわからない。メソッドについて理解できると思います。記事の中では、5つのサンプル事例を紹介しています。メソッドのイメージを膨らめせてみてください。明確なことはよくわかりませんでした。完璧に定義を理解できなくても引数Targetを使いこなすことは十分可能です。指定するセル(ターゲットしたセル)をクリックするとドロップダウンリストを表示させるという使い方を紹介しています。指定した範囲でなんらかのイベントが発生したときに、なんらかの処理をするというVBAです。ガッツポーズの人ドロップダウンリストを表示させるVBAにはうってつけのプログラム下記の記事では、引数Targetの使い方について詳しくご紹介しています。PocketsVBAの引数Targetの使い方【クリックでマクロを実行するテクニック】https://mamemametochan.com/excel-34VBAでいろんなマクロを設定していると、セルをクリックして作成したマクロを実行させたいと感じる方が多いのではないでしょうか。こんな要望にお応えします。すればいいのかと言うと、引数Targetを使ってVBAを作る!です。引数Targetを使えば、セルをクリックするだけで作成したマクロを実行できるようになります。セルのクリックで背景色を変化させるボタンやユーザーフォームでマクロを実...「ドロップダウンリストを表示させる」以外にもいろんな処理に応用させることができます。併せて確認してみてください。ドロップダウンリストを設定するためのサンプル事例いくつかのサンプル事例を見比べることでドロップダウンリストの設定に関するVBAの理解を深めることができます。大きく分けて2種類のサンプル事例を紹介しています。メソッドと引数Targetが利用されています。事例を比較して「ドロップダウンリストの設定に関するVBA」をマスターしましょう。セルをクリックすると簡単なリストを表示させるサンプル事例1の内容がこちらシート内であればどこのセルをクリックしてもドロップダウンリストが表示されるVBAに直接リスト内容を記入する(〇と×を表示させる)セルにはリスト以外のテキストを入力できる設定にする上記の条件でサンプルVBAを作成していきます。Sub3.セルをクリックするとドロップダウンリストが表示されるサンプルVBAの2行目がドロップダウンリストの設定をリセットするサンプルVBAの5行目が「入力した値は正しくない」というエラーを表示させないというプログラムになっています。5行目のプログラムを記載しなければ下図のようなエラーが表示され、リスト以外のテキストを入力することができなくなります。ひらめく人エラーを表示させないプログラムはとても重要。いろんなVBAに応用されるので覚えておきましょう。)A5セルにリスト項目以外のテキストを入力するとエラーを表示する上記の条件でサンプルVBAを作成していきます。Sub3.A5セルをクリックするとドロップダウンリストが表示される引数Targetを使ってセルを指定するとき「Target.Range()」や「Target.Cell()」と記載したくなると思いますが、これではVBAを動かすことはできません。「Row」と「Column」を使わなければなりません。「A5セルをクリックすると〇〇する」という意味です。引数Targetは「セルをクリックしてVBAを実行させる」ときによく使われるプログラムなので使い方をマスターしておきましょう。一覧表(縦方向)からリストを表示させるサンプル事例3の内容はこちらA5セルをクリックするとドロップダウンリストが表示されるE列に作成された一覧表の情報を取得しドロップダウンリストに反映させる一覧表の項目が増減したときリスト項目も自動的に増減される上記の条件でサンプルVBAを作成していきます。Sub3.リストに追加した項目が自動的にドロップダウンリストに反映されるリストの情報を取得するプログラムではCount関数やTranspose関数が使われています。Count関数はリストの一番下の項目の場所を取得し、Transpose関数ではリストの範囲を変数に格納する目的で使用しています。下記の記事では、Count関数の使い方を詳しくご紹介しています。PocketsVBAで行数をカウントするやり方【Count関数の使い方と導入方法】https://mamemametochan.com/excel-3疑問がある人一覧表の行数が変わったときに自動的に行数を調べる方法ってないの?こんな疑問にお答えします。結論からいうと、VBAでカウント関数を設定すれば、一覧表の行数が変わっても自動的に対処することが可能です。VBAでカウント関数を上手に扱うことができれば、以下のような処理を自動化することができます。ガッツポーズの人仕事でよく必要とされる処理なので、めちゃくちゃ利用頻度...Transpose関数を始めて見た!という方はイメージしにくく難しいと感じるかと思います。使い慣れるまでサンプルVBAをコピペして使ってみてください。一覧表から情報を取得する方向が異なります。具体的には下図のようなイメージです。意外と難しい内容だったためサンプル事例として紹介しています。Sub3.リストに追加した項目が自動的にドロップダウンリストに反映されるサンプル事例3とサンプル事例4の違いはリストの情報を取得する向きを縦方向から横方向に変更したことです。サンプルVBAでいうと4行目のプラグラムが大きく異なっていて、Transpose関数の中にTranspose関数を入れることで情報を取得する向きを変えています。縦方向と横方向の情報を取得できれば、どんな様式の一覧表からでも情報を取得することができるようになります。導入することができればリスト項目が増えすぎてドロップダウンリストが扱いにくくなる!というデメリットを解消することができます。リスト項目の見直しをすることがあれば「条件によってリスト内容を変化させるVBA」の導入にチャレンジしてみてください。おもいきって「条件によってリスト内容を変化させるVBA」を導入してみました。結果、仕事の効率が2倍以上アップ。エクセルが得意ではない年配の方でも簡単に資料を編集することができるようになりました。条件によってリスト内容が変化するVBAが設定されたエクセル家計簿をダウンロードしてお使いいただくことが可能です。家計簿の入力作業がとても簡単。ドロップダウンリストに表示される項目が常に最小限なので、めちゃくちゃ入力しやすいと好評です。「VBAを使ったドロップダウンリストの設定」の依頼も承っております。「条件によってリスト内容が変化するVBA」を設定したいけど難しい!という方におすすめです。「このようなVBAを設定してほしい。」「この様式にVBAを設定してほしい。」といった簡単な内容でOKです。ご要望にお応えするVBAを提案、開発させていただきます。業務の効率をアップさせることができるプログラミングを身に着けたい。業務進捗状況をエクセルを使って効率よく管理したい。チェック表をエクセルで作りたい。コメントをキャンセルメールアドレスが公開されることはありません。*ウェブサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。自己紹介マメな性格で2児の子を持つアラサー父ちゃん。働き方について日々研究中。このブログでは、VBAを使ったエクセル作業の効率をアップさせる方法を中心に記事を掲載しています。会社員のときに経験した「こんな機能がほしい」、「こんなことできたら便利だなぁ」という悩みをVBAで解決します。エクセル記事の他にも、「電気の仕事」についての情報を紹介しています。個人事業主が事業を営んでいく上で有益な情報や電気の仕事に関する情報などを私の経験からご紹介しています。「失敗」という貴重な経験を有益な情報に変換してみなさんにお届けします。