- ベストアンサー
EXCEL2000
今エクセル2000を使っているのですが、コンボボックスの作り方まではわかるのですが、そのリストに文字を表示する方法がわかりません。本を買ってきて文字が出たと思ったら、コンボボックスを開いて選択しその次見るとリストに同じものがもう1セット増えています、もう一度やるとさらに1セットという風に増えていました。なぜでしょう?? コードというのがあり Private Sub ComboBox2_Change() With ComboBox2 .AddItem "リスト1" .AddItem "リスト2" End With End Sub という具合に入っています。誰か教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
エクセルのワークシート上のコンボボックスについて、 ツールボックスのデザインモード(三角定規と鉛筆)をへこました状態にする。 (1)コンボボックス内で右クリックして (2)出てくるプロパティをクリックして (3)出てくる「プロパティウインドウ」の (4)「ListFillRange」に例えばA1:A3といれる。 (5)LinkedCellに例えばB1といれる。 (6)右上の×をクリックしてウインドウをとじる。 (7)ツールボックスのデザインモード(三角定規と鉛筆)をへこました状態をクリックし解除して (8)A1:A3に例えば東京、大阪、名古屋といれる。 (9)コンボボックスの▼をクリック。東京、大阪、名古屋がリストで出る。 (10)選択する行をクリックすると、B1に値がセット される。
その他の回答 (2)
- bugmaru
- ベストアンサー率38% (76/195)
まずこの Sub ComboBox2_Change() と言うサブルーチンはComboBox2と言う名前 のComboBoxにChangeイベントが発生すると必ず呼び出されるサブルーチンです。 ウィンドウズは「ボタンを押した」「画面を左クリックした」といったイベント をトリガーにプログラムが動作するような構造になっています。 ComboBoxのChangeイベントはコンボボックスのテキスト表示エリアが変更される 度に発生するイベントです。したがってComboBoxを開いてリストから選択する度 にこのイベントが発生しComboBox2_Change()サブルーチンが呼び出される事に なります。 次に実際どういった実行されるか説明します。 With ComboBox2 .AddItem "リスト1" .AddItem "リスト2" End With Withステートメントはついになる End Withまで指定したオブジェクトに対して ステートメントを実行できる命令で、 ComboBox2.AddItem "リスト1" ComboBox2.AddItem "リスト2" と同じ意味になります。 AddItemはCombox2のリストの最後にリストに表示する文字を追加するメソッドです。 したがって、Comboboxからリストを開いて選択する度にComboBox2_Change()が 呼び出され、"リスト1"、"リスト2"がCombobox2のドロップダウンリストに追加 されます。
ComboBox2_Changeは、Changeイベントです。 Change イベントは、コンボボックスの文字が入力によって変更されるか、 選択リストから別のデータが選択されたときに呼び出されます。 そのため、最初は、「リスト1」「リスト2」の2つの選択アイテムですが、 コンボボックスを開いて選択することによって、再度、Changeイベントが発生し、 「リスト1」「リスト2」のアイテムを、コンボボックスに追加する、上記処理が、更に実行されます。 だから、どんどん、増えていくのだと思いますよ。