Excel VBA質問箱 IV

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

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


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

【67953】コンボボックスのプロパティ設定について ユキ 11/1/19(水) 10:10 質問[未読]
【67954】Re:コンボボックスのプロパティ設定について UO3 11/1/19(水) 10:27 発言[未読]
【67955】Re:コンボボックスのプロパティ設定について ユキ 11/1/19(水) 10:34 発言[未読]
【67956】Re:コンボボックスのプロパティ設定について ユキ 11/1/19(水) 11:30 お礼[未読]

【67953】コンボボックスのプロパティ設定について
質問  ユキ  - 11/1/19(水) 10:10 -

引用なし
パスワード
   WindowsXP
Excel2007(使用するブックは97-2003互換モード)
-------------------------------------------------

はじめまして。ユキと申します。
この度はよろしくお願いいたします。
コンボボックスのプロパティ設定についてです。

Sheet1に配置したボタン1を押下し、Form1を呼び出します。
Form1にはコンボボックス1があり、コンボボックスのRowSourceには、Sheet2のC列を設定します。
Sheet2のC列のデータ数は、可変するので、その都度最終行を検索するようにします。

その、RowSourceの設定の仕方でつまづいています。
以下、Form1の起動時のソースです。

----------------------------------------------------------------

Private Sub UserForm_Initialize()

Dim lListRow_Max As Long

With Me
  
  lListRow_Max = ThisWorkbook.Worksheets("Sheet2").Range("C1").End(xlDown).Row
  .cmbbox1.RowSource = "Sheet2!C1:C" & lListRow_Max

End With

End Sub

----------------------------------------------------------------

.cmbbox1.RowSource = "Sheet2!C1:C" & lListRow_Max
で、「RowSourceプロパティを設定できません。プロパティの値が無効です。」というエラーが出ます。

そこで、実際にForm1のコンボボックス1に「Sheet2!C1:C5」(lListRow_Maxを仮に5と指定)と設定してみると、ちゃんとRowSourceとして認識します。

ちなみに、ボタン1をクリックしての動作では無く、Form1を起動させる動作(ユーザーフォームの実行)だと、上記のコードでも問題無くRowSourceのプロパティとして設定します。

色々と検討してみましたが、どこに問題があるのか判別できません。
どなたかご教授願えませんでしょうか。
よろしくお願いいたします。

【67954】Re:コンボボックスのプロパティ設定につ...
発言  UO3  - 11/1/19(水) 10:27 -

引用なし
パスワード
   ▼ユキ さん:

こんにちは
実際にエラーになったときの lListRow_Max の値はいくつだったでしょうか?

【67955】Re:コンボボックスのプロパティ設定につ...
発言  ユキ  - 11/1/19(水) 10:34 -

引用なし
パスワード
   ▼UO3 さん:

ご返答ありがとうございます。

>実際にエラーになったときの lListRow_Max の値はいくつだったでしょうか?
実際にも 5 でした。

よろしくお願いいたします。

【67956】Re:コンボボックスのプロパティ設定につ...
お礼  ユキ  - 11/1/19(水) 11:30 -

引用なし
パスワード
   ▼UO3 さん:

先ほどはご返答ありがとうございました。
その後のレスを待つ間に、質問とは直接関係の無い(と思われる)別の箇所のコーディングを進めていたのですが、いつの間にかエラーが出ないようになっていました。

その箇所は、Form1のコンボボックス1のRowSourceを設定する前の処理で、Sheet2のC列の値を検索したり追加したり、という処理でした。

その際、Sheet2にアクセスしたことが何か関係したのかとも思ったのですが、その後の処理では違うブックにアクセスしたり、またSheet1にアクセスしたりしています。
結局はそこを通過してから(つまり最初と変化は無いのでは…)、Form1のコンボボックスを操作しているので、直接何が作用したのか分かりません。

せっかく考えていただいていたとは思うのですが、ひとまずは解決しましたので、これをもってお礼とさせていただきます。
ありがとうございました。

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