VBAのコンボボックスを使用する際に数十個のリストを作成するのは時間がかかりますよね。そんな悩みを一気に解決する、リストの一括作成のやり方のご紹介です。
コンボボックスの使い方はこちらです。
リストの作成
- リストがあればすぐ出来る
- 「”」を使ってリストを作る
- 入力時間が大幅を短縮
リストの選定
市町村名をモデルにしていくと、ホームページなどから一覧を選択しコピーします。
コピーしたリストをExcelシートにペーストします。
コピー&ペーストはこちらで紹介しています。
必要のない列を削除し、リストに加えたい列のみに成形する!
文字列の扱い
- 「”」の使い方をマスターする
- オートフィルで一気に作成
Excelシート上での文字列は「”(ダブルクォーテーション)」で括ることで認識させます。ここで問題となるのが、「”」の数でどのようになるのかを把握していないと任意の出力が出来ない事です。
今回はコンボボックスで使用するリストを一括で作成したいので、下図の「”aaa”」を作成しなければなりません。つまり、「”」を文字として出力する必要が出来てきます。
「”」の数で結果が変わってくることが判りますね。これは「””」を2つ繋げると文字としての「”」意味を持つようになるためです。ちなみに「&」は文字列の結合する際に使用されます。
="&A2&"・・・①
=""&A2&""・・・②
="""&A2&"""・・・③
=""""&A2&""""・・・④
①は「”」で囲まれているため、&A2&がそのまま文字列として認識されます。
②「””」で「”」となるのでこれで大丈夫かと思いきや失敗です。理由は判りませんが、恐らく赤と青でそれぞれ空白と認識(?)してしまうためかと思います。
③赤が文字列としての扱いの「”」となり、青の「””」もしっかり「”」に変換されていますが、①と同様で全てが文字列と認識されてしまい、やはり失敗ですね。
④赤の組み合わせと緑の組み合わせで囲むことでで青の「”」が文字として認識されましたので、「”」を4つ付けて初めて成功となりました!
一括変換
「”」を文字として出力する方法が判ったので、あとはオートフィルで引っ張るだけで、一気に「”文字列”」を出力する事ができます。ここまでくればあと一歩で完成です。
コンボボックスのリストとして必要な「.AddItem」の追加と間に半角スペースを追加してリストの完成です。「.AddItem 」に半角スペースを混ぜてしまっても大丈夫なのでお好みで!
これでリストが完成しましたので、あとはVBAに張り付けるだけで一気にリストを追加する事ができます。
まとめ
- リストを一つ一つ作らなくて済むようになる
- 「”」は数によって扱いが変わってくる
深く考えずに「”」を4つ並べればリストを作成できますが、仕組みは理解しておいた方が他でも応用して使える様になりますので、徐々に覚えて行けば大丈夫です!
お読みいただきありがとうございました。