- ベストアンサー
エクセルのセル時刻データをMsgBOX命令で正しく表示させる方法
エクセルのセルに表示形式として、時刻を設定しています。 例えば、A1=23:30が入っていると MsgBox "A1=" & sheets("XYZ").Range("A1") では、0.9375と表示されてしまいます。 どのようにすれば、23:30と表示させることができますか。 VBについては、あまり詳しくはありません。 よろしく教示願います。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
一番簡単な方法は MsgBox(MsgBox "A1=" & sheets("XYZ").Range("A1") .Text) でしょう。 ちなみに Range("A1") だけですと実際は省略されていますが Range("A1").Value となっています。 ということでA1セルの「本来入っている値」が表示されてしまうので、Textと指定すれば「表示されている値」が出てくるのです。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
A1セルに25:30と入力し、書式-セル-ユーザー定義で[h]:mmにすると25:30、B1セルに同じく25:30と入力し、書式-セル-ユーザー定義でhh:mmにすると01:30と表示されます。 Sub test02() MsgBox Format(Worksheets("sheet3").Range("a1").Value, "hh:mm") MsgBox FormatDateTime(Worksheets("sheet3").Range("a1").Value, vbShortTime) End Sub はどちらも、01:30となります。[h]:mmは旨く行かない。25:30と出す方法で頓挫しましたが、以上報告します。
お礼
ありがとうございました。一番簡単な、No.3を利用させていただきました。
- popesyu
- ベストアンサー率36% (1782/4883)
3番です。ごめんなさい。入力ミスで分かりにくくなってます。 単純にしますとこうですね。 MsgBox (Range("A1").Text) で MsgBox (Range("A1")) これだけだと実際は MsgBox (Range("A1").Value) ということです。
- noriemon
- ベストアンサー率35% (5/14)
msgbox "A1=" & FormatDateTime(sheets("XYZ").Range("A1"),4) で どうでしょうか? ちなみに最後の引数の4は vbShortTime つまり 24 時間形式 (hh:mm) で時刻を表示するための設定です。 他にもいろいろありますよ。
お礼
ありがとうございました。一番簡単な、No.3を利用させていただきました。
- mshr1962
- ベストアンサー率39% (7417/18945)
Format(sheets("XYZ").Range("A1"),"hh:mm") でできませんか?
お礼
ありがとうございました。 簡単そうにできるNo.3とNo.1を試させていただきました。 ただし、hh:mmは、25:30の表示ができなかったので、 [h].mmと変更したら変な表示になってしましました。
お礼
ありがとうございました。 質問項目に.Textのみ追加するだけで、25:30等 も表示できました。