こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAで、ユーザーフォーム初期化時のエラー

Excel97を使用しています。

コンボボックスにリストをセットしようとして、

Private Sub Workbook_Open()
Range("A1:A5").Name = "社員"
'セル範囲はブックを開く度に変わります
End Sub

Private Sub UserForm_Initialize()
ComboBox1.ListFillRange = "社員"
End Sub

というコードを書いたのですが、
「コンパイルエラー:メソッドまたはデータメンバが見つかりません。」というエラーが出てきて、
.ListFillRange =
の部分が選択されてしまいます。

ListFillRange を RowSource に変更するとエラーは出ないのですが、RowSource で設定してしまうと、後にリストが変更できないと教わりましたので、これ以外でコンボボックスにリストをセットする方法がありましたら教えて下さい。

プロパティ/メソッドの一覧にListFillRangeが見当たらなかったので、もしかしたらエクセル97では使えないのでしょうか?

どうぞよろしくお願いします。

投稿日時 - 2004-11-11 14:10:01

QNo.1079764

すぐに回答ほしいです

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

Combobox1.Clear  の代わりに

Combobox1.RowSource = ""

としてみたらどうでしょう。
 

投稿日時 - 2004-11-11 16:29:58

お礼

うまくリストの変更ができました!
どうもありがとうございます。

投稿日時 - 2004-11-12 10:41:40

ANo.2

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

>RowSource で設定してしまうと、後にリストが変更できないと教わりましたので

この意味がちょとわからないのですが。。
以下のとおりです。


Userform上の Combobox は RowSource

Sheet上の Combobox は ListfillRange


以上。

投稿日時 - 2004-11-11 15:32:39

お礼

ご回答どうもありがとうございます。

シート上に配置かユーザーフォーム上に配置かでプロパティが変わってくるのですね。どちらも使えると思っていましたのでとても勉強になりました。

>> RowSource で設定してしまうと、後にリストが変更できないと教わりましたので
> この意味がちょとわからないのですが。。
ComboBox2の値を選択した時に、ComboBox1のリストの値を変更しなくてはいけないのですが、

Private Sub ComboBox2_Change()
 ComboBox1.Clear
 'ここにリストの設定用コードが入ります
End Sub

上記のコードで「実行時エラー'-2147467259(80004005)予期せぬエラーが発生しました。」
と出て、ComboBox1.Clearの部分が黄色くなってしまうのです。

これを回避する方法を探しているのですが…。
どうぞよろしくお願いします。

投稿日時 - 2004-11-11 15:47:47

あなたにオススメの質問