• ベストアンサー

exelのVBE設定

exelのVBEでフォームのコンボボックスのRowSourceプロパティを設定したのですが表示されません。 シートのセルの一部をドロップダウンリストとして使用しています。 どこがおかしいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1734/2604)
回答No.7

書き忘れました。 > 使用しているフォームはたuserform2なのですが、2は不要ですか? userform2を選択した状態でしたらコードを書く右側のウィンドウはuserform2専用の場所になりますので2は必要ありません。2を付けるとユーザー作成の単なるプロシージャになります。

makisaori
質問者

お礼

貴重な時間、ありがとうございました。 また宜しくお願いします。

その他の回答 (6)

  • kkkkkm
  • ベストアンサー率66% (1734/2604)
回答No.6

> インデックスが有効範囲にありません これはシートの指定が違う(シートが無いない)場合に出ますが、添付された画像では違うような感じではありませんね…。 どの行でエラーになっているかF8キーを押してステップ実行して確認してみてください。

  • kkkkkm
  • ベストアンサー率66% (1734/2604)
回答No.5

> 全くこの通りなのですが、空白のままです。 No4を目視で確認ではなくそのままコピペしてみてください。 もしくは Private Sub UserForm_Initialize() になっているか確認してください。

makisaori
質問者

補足

ありがとうございます。 作成しているブックはネット環境がないので目視になります。(ウイルス防止の為隔離されてます) 使用しているフォームはたuserform2なのですが、2は不要ですか? 2を消すと、インデックスが有効範囲にありません。とエラーになります

  • kkkkkm
  • ベストアンサー率66% (1734/2604)
回答No.4

このコードで設定できますが、コンボボックスの名前は ComboBox撮影区分 ComboBox撮影部位 であっていますか? また、エラーが出る場合どこで(場所が選択状態になっていると思います)どのようなエラーなのか、また、メッセージのすべてを教えてください Private Sub UserForm_Initialize() Dim IRow As Long Dim IRowp As Long With Worksheets("区分") IRow = .Range("A" & Rows.Count).End(xlUp).Row End With With Worksheets("区分") IRowp = .Range("B" & Rows.Count).End(xlUp).Row End With With ComboBox撮影区分 .RowSource = "区分!A2:A" & IRow End With With ComboBox撮影部位 .RowSource = "区分!B2:B" & IRow End With End Sub

makisaori
質問者

補足

ありがとうございます。 全くこの通りなのですが、空白のままです。 フォームがほかにもあり、他のシートもあるのですが何か指定が必要でしょうか?

  • kkkkkm
  • ベストアンサー率66% (1734/2604)
回答No.3

"区分!BA2:A" & IRowp は "区分!B2:B" & IRowp にしてください。

makisaori
質問者

補足

ありがとうございます。 そこは書き間違いでしたが、修正しても空白のままです。 rowsourseプロパティーに直接入力すると表示されますが、区分を変更することを考えて、シートからリストを拾得したいです。

  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.2

撮影部位のアドレスがおかしいのは置いといて、 Private Sub UserForm2_Initialize()   ↓ Private Sub UserForm_Initialize()

makisaori
質問者

補足

ありがとうございます。 2を消すとコンパイルエラーと表示されました。

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.1

A2:A4のセル範囲に「撮影区分」と名前を付け、B2:B5のセル範囲に「撮影部位」と名前を付けてください。 そして、コンボボックスのそれぞれのRowSourceプロパティに撮影区分と撮影部位と入力してみてください。

makisaori
質問者

補足

後からデータ追加するかもしれないので、行をカウントして範囲を決めたいです。

関連するQ&A

専門家に質問してみよう