【Excel VBA】コンボボックスの作成は今すぐ禁止

記事
IT・テクノロジー

YoTubeでも解説しています。ぜひ、ご覧ください。


Excelの初心者の頃は、何かとコンボボックスを作成したくなります。
次に、連動のコンボボックスですね。
しかし、凝りすぎると、コンボボックスは不便です。

【Excel VBA】コンボボックスの作成は今すぐ禁止

こんにちは。伊川です。
Excelの初心者の頃は、何かとコンボボックスを作成したくなります。
次に、連動のコンボボックスですね。
しかし、凝りすぎると、コンボボックスは不便です。
今回は、コンボボックスに変わる方法を紹介します。
以前に、連動のコンボボックスの作成は、下記の記事で紹介しています。
参考にしてください。
連動コンボボックス作成には、様々な方法があります。
INDIRECT関数を利用する方法はやめた方がいいです。
これは、経験談です。
業者とかに、システムを発注しても、平気で、長いコンボボックスを作成してくるときがあります。
1.jpg
はっきり言いますが、こんなコンボボックスは、迷惑のなにものでもありません。
だから、社内システムは、処理を、知っている人が一番です。

このブログはこんな人にお勧め

コンボボックスが、不便と思っている人
連動のコンボボックスを作成したいと思っている人
コンボボックスを最強と思っている人

このブログを、読み終わるころには・・・・

コンボボックスのリストは、せいぜい、5行までです。
私は、競馬をしていますが、競馬場の選択は、10行あります。
10行の中から、選択するのは、本当に不便です。
発送の転換と、少しの配列の知識で、作成可能です。

連動のコンボボックスに変わる手段

個人的な意見ですが、連動のコンボボックスを作成するは、結構、難しいです。
2連動なら、ネットに情報もありますが、5連動くらいになると結構しいです。
記事挿入
そして、エンドユーザーが、不便に感じると、文句ばかりということになります。
なので、感覚的に操作できる代用品が必要になります。
今回は、ユーザーフォームを利用することになります。
配列が、便利と感じる瞬間を、味わってください。

連動のコンボボックスに変わる手段 作業手順 その1 ユーザーフォームを作成する


2.jpg


こんな感じで、ユーザーフォームを作成します。
今回は、向かって右側が、空白になっています。

3.jpg

本来なら、このようになっています。
肝心なのは、1~6まで、順番に並べましょう。
この1~6までを、配列で、実装します。

連動のコンボボックスに変わる手段 作業手順 その2 配列のコード

4.jpg
ただこれだけのコードです。
配列に関しては、何度か説明しています。
この辺のコードに関しては、難しくないと思います。

連動のコンボボックスに変わる手段 作業手順 その3 テキストボックスに反映させる


6.jpg

7.jpg

このコードです。
難しいということはありません。
しかし、考え方としてですが、左辺は、TextBox1のみです。
右辺の処理だけが変わります。
このイベントの塊は、クラスモジュールで処理をした方が、効率が良いですね。
クラスモジュールを利用する場合は、このシーンを忘れないでください。
反対に、戻り値を利用する場合は、Functionを利用したほうが良いかとおもいます。
Functionの利用する場合は、空白判定等がいいと思います。
そのTextBox1は、空白という結果(戻り値)の場合に、どのような処理をするかということになるからです。

連動のコンボボックスに変わる手段 作業手順 その4 クラスモジュールは便利


8.jpg

インテリセンスが利用できます。
利用してみると、実際に便利です。
また、いちいち、指定する必要がないため、Caption、つまり、ボタンの見出しを利用するため、
その部分さえ変更すれば、TextBox1に反映されます。

ここがポイント


基本書でも、このようなことは、解説はしていません。
事実上、連動のコンボボックスを作成と、同等の役割をはたしています。
配列の知識は、必要かもしれませんが、エンドユーザーにとっては、この方法が、感覚的に操作可能で、利用しやすいと思います。
もっと、沢山のリストがあるなら、ユーザーフォームを分割すれば良いと思います。

まとめ

今回は、コンボボックスの代用について紹介しました。
もちろん、連動コンボボックスも重要です。
しかし、代用品もあることを、理解できていれば、臨機応変に対応することができます。
今回も最後まで読んでいただきありがとうございました。

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す