• ベストアンサー

Excel2010のコンボボックスについて

ActiveXコントロールのコンボボックスについて質問です。 ListFillRangeに一番上に文字列・以下は日付の入ったセル(日付の書式はyyyy/mm/dd)を設定しています。 コンボボックスで選択する際にリストの表示は設定したセルの通りなのですが、日付を選択するとコンボボックスのテキストエリア?の表示が標準に(41172のように)なってしまいます。 これをyyyy/mm/ddのように表示することは可能でしょうか? プロパティのどこをどのようにしたら良いのでしょうか? お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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

zenithcooler
質問者

お礼

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

その他の回答 (1)

noname#187541
noname#187541
回答No.1

こんにちは。 プロパティでは出来ません。 方法としては、リストから選んだ時はChangeイベントが派生するので、このイベント内書式を変えてやればいいでしょう。 Private Sub ComboBox1_Change() Me.ComboBox1.Text = Format(Me.ComboBox1.Text, "yyyy/mm/dd") End Sub

zenithcooler
質問者

お礼

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

関連するQ&A

専門家に質問してみよう