アプリ版:「スタンプのみでお礼する」機能のリリースについて

日程表マクロを作っています。セルのC3からAG3の横列31個のセルに1日から31日までの日付を作成してあります。
コンボボックス5で日付選択をしたいので、この列を参照したいと考え、下記のプログラムを作成しました。実行すると「コンパイルエラー」、参照されません。

Private Sub ComboBox5_Enter()
ComboBox5.ColumnSource = "C3:AG3" ’ComboBox5をActiveSheetに変更するとサポートされず。
End Sub

マクロで
With ComboBox5
.AddItem"1"
.AddItem"2"
:
.AddItem"31" ではなくてRowSourceに代わる指定セル範囲の横列参照はできないのでしょうか?

あるいはもっとスマートな指令方法があれば教えてください。
Excel2007 VB6.5です。

A 回答 (2件)

UserForm上のComboBoxですね?


Columnプロパティを使います。
Me.ComboBox5.Column = ActiveSheet.Range("C3:AG3").Value

#以下余談ですが
セットのタイミングはComboBox5_Enterで良いのですか?
運用状況によってはUserForm_Initializeでも可、ではないのでしょうか。
    • good
    • 0

僕の持っている2003と2010には、コンボボックスにColumnSourceなんてプロパティ


はありませんでした。2007にはあるのだろうか?

代替案としては、RowSourceプロパティを使うか、31回ループさせればいいだけのこと
ではないのですか?
例えばこんな感じ。
With ComboBox5
 For i = 1 To 31
  .AddItem CStr(i)
 Next i
End With
    • good
    • 1
この回答へのお礼

早々のご回答ありがとうございました。助かりました。
end-uさんの指令でも私の2007では同じ結果が得られましたが、他のPCでもこのマクロを使うので、この方法を使わせていただきます。
ご両人さま、ありがとうございました。

お礼日時:2011/09/18 00:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!