|
|
| Excel VBA Macro ・ コンボボックス・コントロール ・ FAQ |
コンボボックスで入力した値をセルに順次格納するには? (ユーザーフォーム使用)?
|
|
|
|
Question 51.2 |
|
 |
 |
|
|
500連発第2弾の本の387番「コンボボックスで入力した値をセルに順次格納する」の説明にある「Excel97以上でも使えますがユーザーフォームにした方が良いでしょう」を読んで、サンプルブックを自分で改造してみました。
ところが、どうしても、loopが、永遠に続きます。userform.showもすでに開いているので、使えません。"DB".SELECTは、何をさすのでしょうか?
教えてください。
|
|
Answer Excel 97以上 |
Copyright (C) 2002.1.11 永井善王 |
|
|
ご質問の387番のサンプルは、このホームページでも「コンボボックスで入力した値をセルに順次格納するには?」で見ることが可能ですが、Excel95のダイアログシートに右図のコンボボックスを作成しています。
ダイアログシートは、Excel97以上でも引き続き動作しますし、その手法で作成することも可能でありメリットもあります。
しかし、Excel97以上では隠し機能になったため、新規に作成する場合は、ユーザーフォームを利用する方が良いでしょう。

左図が Excel97以上のユーザーフォームに作り直してみたものです。
「県名」を入力・選択するためのコンボボックスがシンプルな形に変っています。
外観上の変化はそれだけですが Excel97以上では、マクロコードを入力するシートが沢山できました。特徴の1つとして、表示されたユーザーフォームでユーザーが操作をするとイベントが発生するので、そのときにマクロで処理を行うことが可能になりました。そして、このイベントマクロは、ユーザーフォームのコード画面に作成します。
そのため、387番のサンプルブックを改造する場合には、こうした相違点を考慮する必要があります。
ご質問によると、ダイアログシートについては覚える必要がなく、387番のサンプルを応用した処理をユーザーフォームで行いたいようですので、改造サンプルを用意しておきました。こちらをダウンロードして再チャレンジされれば、うまくいくかと思います。頑張ってください。
サンプルブックのダウンロードは ここをクリック
(500-2-387.xls 71KB) ※ 一旦、ブックをハードディスクに保存し、後で改めて開いてから実行してください。
|
|
|
|
| |
|
|