Excel VBA質問箱 IV

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

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


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

【77650】複数コンボックスへの処理について ten 15/11/18(水) 10:41 質問[未読]
【77651】Re:複数コンボックスへの処理について β 15/11/18(水) 11:33 発言[未読]
【77652】Re:複数コンボックスへの処理について ten 15/11/18(水) 12:02 お礼[未読]

【77650】複数コンボックスへの処理について
質問  ten  - 15/11/18(水) 10:41 -

引用なし
パスワード
   はじめまして。

今、VBAを勉強中で、複数のワークシート上にそれぞれ4つのコンボボックスを置いて、
全てのコンボボックスで同じ選択肢を設定したいと思っています。
そこで、下記のようなコードを書いたのですが、
「オブジェクトはこのメソッドをサポートしていません」のエラーになります。
「Worksheets(・・).Controls(・・)」がまずいのは見当がつくのですが、
どのような書き方が正しいのでしょうか。

コードを書いているのは「ThisWorkBook」です。


For Each mySheet In Worksheets
    For i = 1 To 4
        With Worksheets(mySheet.Name).Controls("ComboBox" & i)
          .AddItem "リンゴ"
          .AddItem "みかん"
          .AddItem "かき"
          .AddItem "パイナップル"
          .AddItem "バナナ"
          .AddItem "ブドウ"
        End With
    Next i
Next

【77651】Re:複数コンボックスへの処理について
発言  β  - 15/11/18(水) 11:33 -

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


With Worksheets(mySheet.Name).Controls("ComboBox" & i)

これを

With Worksheets(mySheet.Name).OLEObjects("ComboBox" & i).Object

に変えて試してみてください。

さらにいえば、mySheet が、対象シートオブジェクトそのものですから

With mySheet.OLEObjects("ComboBox" & i).Object

でいいですよ。

【77652】Re:複数コンボックスへの処理について
お礼  ten  - 15/11/18(水) 12:02 -

引用なし
パスワード
   ▼β さん:
>▼ten さん:
>
>
>With Worksheets(mySheet.Name).Controls("ComboBox" & i)
>
>これを
>
>With Worksheets(mySheet.Name).OLEObjects("ComboBox" & i).Object
>
>に変えて試してみてください。
>
>さらにいえば、mySheet が、対象シートオブジェクトそのものですから
>
>With mySheet.OLEObjects("ComboBox" & i).Object
>
>でいいですよ。

早速お返事頂き、ありがとうございました。
修正したところ、思い通りに動作しました。

色々調べるうちに「OLEObjects」を使うのかと思い試していましたが、
最後の「.Objects」が無かったせいか、うまく動きませんでした。

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