Excel VBA質問箱 IV

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

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


899 / 13644 ツリー ←次へ | 前へ→

【77662】コンボボックスへのデータ設定 goro 15/11/19(木) 10:02 質問[未読]
【77663】Re:コンボボックスへのデータ設定 β 15/11/19(木) 10:52 発言[未読]
【77664】Re:コンボボックスへのデータ設定 goro 15/11/19(木) 11:09 お礼[未読]
【77666】Re:コンボボックスへのデータ設定 める 15/11/20(金) 20:20 発言[未読]

【77662】コンボボックスへのデータ設定
質問  goro  - 15/11/19(木) 10:02 -

引用なし
パスワード
   こちらは何度か利用させて頂いてます。

さて、複数のコンボボックスに対して、ワークシート上に入力してあるデータを
選択肢に設定したいと思っています。
それぞれのコンボボックスについて、データが入力されている範囲が異なるので、
「Cells(MinRow, 2), Cells(MaxRow, 2)」の様に変数で指定しています。

が、「アプリケーション定義またはオブジェクト定義のエラー」となります。
色々調べましたが、どこが悪いのかわかりません。

済みませんが、教えてください。

Worksheets(myWsn).OLEObjects("ComboBox" & CmbNo).Object.AddItem Worksheets(myWsn).Range(Cells(MinRow, 2), Cells(MaxRow, 2).Value)

【77663】Re:コンボボックスへのデータ設定
発言  β  - 15/11/19(木) 10:52 -

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

まず、アプリケーション定義エラーは領域規定としての

Worksheets(myWsn).Range(Cells(MinRow, 2), Cells(MaxRow, 2).Value)

これは間違いです。

領域としては

Worksheets(myWsn).Range(Cells(MinRow, 2), Cells(MaxRow, 2))

ですし、その値ということなら

Worksheets(myWsn).Range(Cells(MinRow, 2), Cells(MaxRow, 2)).Value

です。

次に、重要なことですが、AddItemメソッドは、リストに対して、項目を
【1つずつ】追加するメソッドです。領域の値をどさっと追加することはできません。

アップされた例なら

Sheets(myWsn).OLEObjects("ComboBox" & CmbNo).Object.List = Worksheets(myWsn).Range(Cells(MinRow, 2), Cells(MaxRow, 2)).Value

ですね。

【77664】Re:コンボボックスへのデータ設定
お礼  goro  - 15/11/19(木) 11:09 -

引用なし
パスワード
   ▼β さん:
>▼goro さん:
>
>まず、アプリケーション定義エラーは領域規定としての
>
>Worksheets(myWsn).Range(Cells(MinRow, 2), Cells(MaxRow, 2).Value)
>
>これは間違いです。
>
>領域としては
>
>Worksheets(myWsn).Range(Cells(MinRow, 2), Cells(MaxRow, 2))
>
>ですし、その値ということなら
>
>Worksheets(myWsn).Range(Cells(MinRow, 2), Cells(MaxRow, 2)).Value
>
>です。
>
>次に、重要なことですが、AddItemメソッドは、リストに対して、項目を
>【1つずつ】追加するメソッドです。領域の値をどさっと追加することはできません。
>
>アップされた例なら
>
>Sheets(myWsn).OLEObjects("ComboBox" & CmbNo).Object.List = Worksheets(myWsn).Range(Cells(MinRow, 2), Cells(MaxRow, 2)).Value
>
>ですね。

β さん

回答頂き、ありがとうございました。
うまくいきました。

ネットでいろいろ調べていましたが、理解があやふやだったようです。

【77666】Re:コンボボックスへのデータ設定
発言  める  - 15/11/20(金) 20:20 -

引用なし
パスワード
   >Worksheets(myWsn).Range(Cells(MinRow, 2), Cells(MaxRow, 2)).Value
>です。

Worksheets(myWsn).Range(Worksheets(myWsn).Cells(MinRow, 2 _
), Worksheets(myWsn).Cells(MaxRow, 2)).Value

としたほうがよいかと思います。(あえてWithは使ってません)

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