• ベストアンサー

エクセルのセル時刻データをMsgBOX命令で正しく表示させる方法

エクセルのセルに表示形式として、時刻を設定しています。 例えば、A1=23:30が入っていると     MsgBox "A1=" & sheets("XYZ").Range("A1") では、0.9375と表示されてしまいます。 どのようにすれば、23:30と表示させることができますか。 VBについては、あまり詳しくはありません。 よろしく教示願います。

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

  • ベストアンサー
  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.3

一番簡単な方法は MsgBox(MsgBox "A1=" & sheets("XYZ").Range("A1") .Text) でしょう。 ちなみに Range("A1") だけですと実際は省略されていますが Range("A1").Value となっています。 ということでA1セルの「本来入っている値」が表示されてしまうので、Textと指定すれば「表示されている値」が出てくるのです。

kmasumi
質問者

お礼

ありがとうございました。 質問項目に.Textのみ追加するだけで、25:30等 も表示できました。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

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と出す方法で頓挫しましたが、以上報告します。

kmasumi
質問者

お礼

ありがとうございました。一番簡単な、No.3を利用させていただきました。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.4

3番です。ごめんなさい。入力ミスで分かりにくくなってます。 単純にしますとこうですね。 MsgBox (Range("A1").Text) で MsgBox (Range("A1")) これだけだと実際は MsgBox (Range("A1").Value) ということです。

  • noriemon
  • ベストアンサー率35% (5/14)
回答No.2

msgbox "A1=" & FormatDateTime(sheets("XYZ").Range("A1"),4) で どうでしょうか? ちなみに最後の引数の4は vbShortTime つまり 24 時間形式 (hh:mm) で時刻を表示するための設定です。 他にもいろいろありますよ。

kmasumi
質問者

お礼

ありがとうございました。一番簡単な、No.3を利用させていただきました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

Format(sheets("XYZ").Range("A1"),"hh:mm") でできませんか?

kmasumi
質問者

お礼

ありがとうございました。 簡単そうにできるNo.3とNo.1を試させていただきました。 ただし、hh:mmは、25:30の表示ができなかったので、 [h].mmと変更したら変な表示になってしましました。

関連するQ&A