- ベストアンサー
ユーザーフォーム上にコンボボックス作成
ここの書き込みでも何度も書きましたが、まだ解決できません。 sheet1:にボタンをクリックすると、ユーザーフォームが現れ、その上にコンボボックスを作成しました。 sheet2:には、リストの項目を書いています。それをコンボボックスに表示させたいのですが、上手くいきません。すいません何度、本当に知りたいです 下記を記述しても表示できません。 Private Sub 記入フォームAC_Initialize() For I = 0 To 7 コンボA.AddItem Worksheets("データ").Cells(I + 2, 2).Value Next End Sub
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
No3, onlyromです。 >papayukaさんの記述をしたところ、リストは開く事は出来ました。 >全て空白状態になっています 上手くいかない方がおかしいですよ。 シート「データ」のB2~B8までにちゃんと値は入っていますか??? 再度確認してください。 またリストの元の値がシートにある場合は、 No.4さんの回答にあるRowSourceプロパティを使うのがふつうです。 '------------------------------------------- Private Sub UserForm_Initialize() Dim LastRow As Long LastRow = Sheets("データ").Range("B65536").End(xlUp).Row コンボA.RowSource = "データ!B2:B" & LastRow End Sub '------------------------------------------- 上記は、リストが、シートデータのB2からB列の値が入ってる最後までをとる方法です。 何れにしろ、質問者のコードをアップするのが解決の一番の早道でしょう。
その他の回答 (4)
- ka_na_de
- ベストアンサー率56% (162/286)
別解ですが、こういう方法もありますよ。 Private Sub UserForm_Initialize() コンボA.RowSource = "データ!B2:B9" End Sub 参考>http://www.serpress.co.jp/excel/vba019.html
- onlyrom
- ベストアンサー率59% (228/384)
papayukaさんが正解を出されていますが、一言。 今回のように、UserForm名を ”記入フォームAC”と変更しても、 UserFormのイベントプロシージャー名は、UserFormのままです。 コードウィンドのオブジェクトボックスの中のユーザーフォームも、 記入フォームAC ではなくて、 UserForm のままですよね。 最初、 Private Sub UserForm_Initialize() こう表示されたのを Private Sub 記入フォームAC_Initialize と変更しましたね。 勝手に変えてはいけません!
お礼
ありがとうございました。勝手に変えていました。papayukaさんの記述をしたところ、リストは開く事は出来ました。全て空白状態になっています。オブジェクトを何か変えるのでしょうか?この問題が解けなくて困っています。教えてください。
- papayuka
- ベストアンサー率45% (1388/3066)
下記だとどうですか? Private Sub UserForm_Initialize() For I = 0 To 7 コンボA.AddItem Worksheets("データ").Cells(I + 2, 2).Value Next End Sub
お礼
ありがとうございました。フォームにてクリックするとリストは開く事は出来ました。しかし全部空白状態になっています。他に何かあるんでしょうか>?
- zap35
- ベストアンサー率44% (1383/3079)
コンボボックスにAddItemしてからUserform1.Showをするのが一般的です。ですから >ボタンをクリックすると 起動されるサブモジュールに書けばよいです Sub FormShow() Dim I As Integer コンボA.Clear 'コンボボックスのリストをクリア For I = 0 To 7 コンボA.AddItem Worksheets("データ").Cells(I + 2, 2).Value Next Userform1.Show End Sub のようにしてみたらいかがでしょうか。 蛇足ですがコンボボックスといっても ユーザーフォームのコンボボックス シートに配置したコントロールのコンボボックス シートに配置したフォームのコンボボックス といろいろあります。前の質問ではそれを明示していないから期待する回答が得られなかったのではないでしょうか
お礼
ありがとうございました。フォームにも色々あるんだなと思いました。記述を書いてもリストされません。やはりまだ問題があるのでしょうか?
お礼
ありがとうございました。ようやく解決できました。また教えてください。