Home > Excel VBA Macro コントロール1 > FAQ

コンボボックスで入力した値をセルに順次格納するには?(ユーザーフォーム使用)
Question 51.2 Previous Next
詳細は こちら 500連発第2弾の本の387番「コンボボックスで入力した値をセルに順次格納する」の説明にある「Excel97以上でも使えますがユーザーフォームにした方が良いでしょう」を読んで、サンプルブックを自分で改造してみました。

ところが、どうしても、loopが、永遠に続きます。userform.showもすでに開いているので、使えません。"DB".SELECTは、何をさすのでしょうか?
教えてください。
Answer  Excel 97以上 Copyright (C) 2002.1.11 永井善王
Excel95のコンボボックス ご質問の387番のサンプルは、このホームページでも「コンボボックスで入力した値をセルに順次格納するには?」で見ることが可能ですが、Excel95のダイアログシートに右図のコンボボックスを作成しています。

ダイアログシートは、Excel97以上でも引き続き動作しますし、その手法で作成することも可能でありメリットもあります。
しかし、Excel97以上では隠し機能になったため、新規に作成する場合は、ユーザーフォームを利用する方が良いでしょう。
コンボボックス
左図が Excel97以上のユーザーフォームに作り直してみたものです。
「県名」を入力・選択するためのコンボボックスがシンプルな形に変っています。

外観上の変化はそれだけですが Excel97以上では、マクロコードを入力するシートが沢山できました。特徴の1つとして、表示されたユーザーフォームでユーザーが操作をするとイベントが発生するので、そのときにマクロで処理を行うことが可能になりました。そして、このイベントマクロは、ユーザーフォームのコード画面に作成します。
そのため、387番のサンプルブックを改造する場合には、こうした相違点を考慮する必要があります。
ご質問によると、ダイアログシートについては覚える必要がなく、387番のサンプルを応用した処理をユーザーフォームで行いたいようですので、改造サンプルを用意しておきました。こちらをダウンロードして再チャレンジされれば、うまくいくかと思います。頑張ってください。

サンプルブックのダウンロードは ここをクリック  (500-2-387.xls 71KB)
※ 一旦、ブックをハードディスクに保存し、後で改めて開いてから実行してください。

 

Excel VBA Macro

Excel DownLoad