Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10165 / 13646 ツリー ←次へ | 前へ→

【23373】ComboBoxに関するエラーメッセージ 経理課手形大量発行担当 05/3/20(日) 0:29 質問[未読]
【23374】Re:ComboBoxに関するエラーメッセージ ponpon 05/3/20(日) 1:26 発言[未読]
【23379】Re:ComboBoxに関するエラーメッセージ 経理課手形大量発行担当 05/3/20(日) 10:53 お礼[未読]

【23373】ComboBoxに関するエラーメッセージ
質問  経理課手形大量発行担当  - 05/3/20(日) 0:29 -

引用なし
パスワード
   Userform上にCombobox1とCommandButton1があります。
Combobox1は名前の一覧が入っていて、CommandButton1は押すと入力したCombobox1の内容をリセットする(=空白にする)役目を持っています。

Combobox1を適当に選択し、CommandButton1を押して確かに空白になるのですが、そこでCombobox1にカーソルを置いたまま、右の閉じるボタンを押したり、CommandButton1を押すと「プロパティの値が無効です」というメッセージが出てきてしまいます。
このメッセージが出てこないようにするにはどうしたらよいのでしょうか?
以下、私の作ったものです。

Private Sub CommandButton1_Click()
ComboBox1.Text = Clear
End Sub

Private Sub userform_initialize()
Dim lastrow As Integer
ComboBox1.ColumnCount = 2
lastrow = Worksheets("Sheet1").Range("b65536").End(xlUp).Row
lastrow = Worksheets("Sheet1").Range("a65536").End(xlUp).Row
ComboBox1.RowSource = "Sheet1!a3:b" & lastrow
ComboBox1.TextColumn = 2
End Sub

【23374】Re:ComboBoxに関するエラーメッセージ
発言  ponpon  - 05/3/20(日) 1:26 -

引用なし
パスワード
   ▼経理課手形大量発行担当 さん:
ponponです。こんばんは。

>CommandButton1を押すと「プロパティの値が無効です」というメッセージが出てきてしまいます。

↑WinXP Excel2003 では、再現しませんでした。
何か別なところでひっかかっているのでは?デバッグすると
何処でエラーがでてますか?


>lastrow = Worksheets("Sheet1").Range("b65536").End(xlUp).Row
’>lastrow = Worksheets("Sheet1").Range("a65536").End(xlUp).Row
                     ↑は、いらないのでは??    
これでは、lastrowにB列の最終行を格納した後に、またlastrowにA列の最終行を
格納し直しているのでは?ほしいのは、B列の最終行?それともA列の最終行?
どちらでしょう?
            
>ComboBox1.RowSource = "Sheet1!a3:b" & lastrow
 ↑これなら、B列の最終行でよいのでは?A列B列のデータ数が同じならどちらでも良いですが。

【23379】Re:ComboBoxに関するエラーメッセージ
お礼  経理課手形大量発行担当  - 05/3/20(日) 10:53 -

引用なし
パスワード
   ▼ponpon さん:
回答していただきましてありがとうございます。

>CommandButton1を押すと「プロパティの値が無効です」というメッセージが出てきてしまいます。

多分、ComboboxのMatchRequiredがTrueになっているからだということを自分で発見してしまいました。
よって、
Private Sub CommandButton1_Click()のところに、
ComboBox1.MatchRequired = False
Private Sub userform_initialize()のところに、
ComboBox1.MatchRequired = True
を付け加えてみたらうまくいきました。

>>lastrow = Worksheets("Sheet1").Range("b65536").End(xlUp).Row
>'lastrow = Worksheets("Sheet1").Range("a65536").End(xlUp).Row
>                     ↑は、いらないのでは??    
確かにいらなかったです。ご指摘ありがとうございました。

10165 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free