pickup

Excelの初心者の頃は、何かとコンボボックスを作成したくなります。

次に、連動のコンボボックスですね。

しかし、凝りすぎると、コンボボックスは不便です。

目次

スポンサーリンク

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

 

こんにちは。伊川(@naonaoke)です。

 

Excelの初心者の頃は、何かとコンボボックスを作成したくなります。

次に、連動のコンボボックスですね。

しかし、凝りすぎると、コンボボックスは不便です。

 

 

今回は、コンボボックスに変わる方法を紹介します。

以前に、連動のコンボボックスの作成は、下記の記事で紹介しています。

 

参考にしてください。

連動コンボボックス作成には、様々な方法があります。

INDIRECT関数を利用する方法はやめた方がいいです。

これは、経験談です。

 

業者とかに、システムを発注しても、平気で、長いコンボボックスを作成してくるときがあります。

はっきり言いますが、こんなコンボボックスは、迷惑のなにものでもありません。

だから、社内システムは、処理を、知っている人が一番です。

スポンサーリンク

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

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

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

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

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

 

個人的な意見ですが、連動のコンボボックスを作成するは、結構、難しいです。

2連動なら、ネットに情報もありますが、5連動くらいになると結構しいです。

記事挿入

そして、エンドユーザーが、不便に感じると、文句ばかりということになります。

なので、感覚的に操作できる代用品が必要になります。

今回は、ユーザーフォームを利用することになります。

配列が、便利と感じる瞬間を、味わってください。

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

こんな感じで、ユーザーフォームを作成します。

今回は、向かって右側が、空白になっています。

 

 

本来なら、このようになっています。

肝心なのは、1~6まで、順番に並べましょう。

この1~6までを、配列で、実装します。

 

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

 

ただこれだけのコードです。

配列に関しては、何度か説明しています。

この辺のコードに関しては、難しくないと思います。

 

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

 

スポンサーリンク
このコードです。

難しいということはありません。

しかし、考え方としてですが、左辺は、TextBox1のみです。

右辺の処理だけが変わります。

このイベントの塊は、クラスモジュールで処理をした方が、効率が良いですね。

クラスモジュールを利用する場合は、このシーンを忘れないでください。

反対に、戻り値を利用する場合は、Functionを利用したほうが良いかとおもいます。

Functionの利用する場合は、空白判定等がいいと思います。

そのTextBox1は、空白という結果(戻り値)の場合に、どのような処理をするかということになるからです。

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

インテリセンスが利用できます。

利用してみると、実際に便利です。

また、いちいち、指定する必要がないため、Caption、つまり、ボタンの見出しを利用するため、

その部分さえ変更すれば、TextBox1に反映されます。

ここがポイント

ここがポイント
Function8.png

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

まとめ

 

今回は、コンボボックスの代用について紹介しました。

もちろん、連動コンボボックスも重要です。

しかし、代用品もあることを、理解できていれば、臨機応変に対応することができます。

今回も最後まで読んでいただきありがとうございました。

今回のサンプルファイルは、No282です。

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事