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

こんにちわ!

エクセルVBAのリストボックスの質問です。
現在、エクセル上では時刻データフォーマットが日付データになっているのですが、リストボックスに表示させると数値データになってしまいます。

具体的には
エクセル上⇒11:00
リストボックス上⇒0.45833…
となってしまいます。

どうしたら直るのでしょうか?
アドバイスの程よろしくお願いいたします。
ちなみにエクセル2003での事象です。

A 回答 (3件)

とりあえずお手軽で,前述の応用です。



変更前:
.List = Range(Cells(1, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)).Value

変更後:
.rowsource = Range(Cells(1, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)).address
などのように。




#余談
ご質問の主眼じゃないので特に触れませんが,シートからキチンと指定する事を強くお薦めします。
.rowsource = "シート名!A1:A" & worksheets("シート名").range("A65536").end(xlup).row
    • good
    • 1
この回答へのお礼

できました~><

fmfm
今まであまり意識しておりませんでしたが、シートからきちんと指定するようにしていきたいと思います!!
ありがとうございました~^^

お礼日時:2011/11/08 01:38

>リストボックスに表示させると数値データになってしまいます。


リストボックスとは、入力規則を設定しているセルのことでしょうか。
そのセルの表示形式を 時刻 に変更してみてください。
セルの書式=>表示形式=>時刻を選択
といった感じです。
    • good
    • 0
この回答へのお礼

だめですね~
時刻表示にならないですToT

お礼日時:2011/11/07 22:17

一番簡単な手としては元データのセルをリンクさせれば,問題無く表示されます。



ところで具体的な手順の説明のために
>リストボックスに表示させると

●どのリストボックスを使っている?
 「フォーム」のリストボックスを使っている
 「コントロールツールボックス」のリストボックスを使っている

●どこに設置している何の話をしている?
 ワークシート上にリストボックスを配置している
 VBEでユーザーフォームを作成している
 
●どうやって表示している?
 ・マクロで書き込んでいる
 ○フォームの「コントロールの書式設定」で入力範囲を設定している
 ○コントロールツールボックスのプロパティでListFillRangeを設定している

といった部分が,ご説明が足りてません。
○を付けた手順で行えば,最初にお話しした通り正常に表示されます。

また「リストボックス」自体が間違いで,たとえば「テキストボックス」だったり「コンボボックス」だったり他のコントロールだった場合は,当然また違ってきます。
    • good
    • 0
この回答へのお礼

え~っと
>●どこに設置している何の話をしている?
これはユーザーフォーム上です。

>●どうやって表示している?
これはフォーム上にVBAで
With form_shop.resarve_days
.ColumnCount = 5
.ColumnWidths = "60;50;130;90;70"
.List = Range(Cells(1, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)).Value
.Font.Size = 10
.TextAlign = fmTextAlignCenter
End With
と記述しています。

お礼日時:2011/11/07 20:37

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