プロが教えるわが家の防犯対策術!

ActiveXコントロールのコンボボックスについて質問です。

ListFillRangeに一番上に文字列・以下は日付の入ったセル(日付の書式はyyyy/mm/dd)を設定しています。
コンボボックスで選択する際にリストの表示は設定したセルの通りなのですが、日付を選択するとコンボボックスのテキストエリア?の表示が標準に(41172のように)なってしまいます。

これをyyyy/mm/ddのように表示することは可能でしょうか?
プロパティのどこをどのようにしたら良いのでしょうか?
お願いします。

A 回答 (2件)

プロパティで設定する方法はありません。




一番簡単な対処としては、元の値の日付セル(仮にSheet1!A1:A10)の隣に
B1:
=TEXT(A1,"yyyy/mm/dd;;;")
以下コピー
のように並べて置き、ListFillRangeはSheet1!B1:B10としておきます。




どうしても今の延長でやりたいなら、マクロを使って内容を書き換えさせます。

コントロールを右クリックしてコードの表示を開始
現れたシートに下記をコピー貼り付ける
private sub Combobox1_Change()
 application.enableevents = false
 me.combobox1 = format(me.combobox1.value, "yyyy/mm/dd")
 application.enableevents = true
end sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
Formatで変換する方法をとったところ、うまくいきました。
ありがとうございました。

お礼日時:2012/09/22 12:08

こんにちは。



プロパティでは出来ません。

方法としては、リストから選んだ時はChangeイベントが派生するので、このイベント内書式を変えてやればいいでしょう。

Private Sub ComboBox1_Change()
Me.ComboBox1.Text = Format(Me.ComboBox1.Text, "yyyy/mm/dd")
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ご指摘の通りにしたところ、Me.ComboBox1.Text =・・・のTextの部分がダメみたいで、Valueにしたところうまくいきました。
ありがとうございました。

お礼日時:2012/09/22 12:07

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