dポイントプレゼントキャンペーン実施中!

エクセルです。
時間セルがあって、エクセル上での表示では
12:30:15
という風に表示するようにセルの書式設定でしているのですが、そのセルを
VBで取り出そうとして、
A = Cells( 1,1 )
とかってすると、Aには、0.66656
とかって数字が入ってきてしまいます。
Aは文字列として、DIM A as String
とかってしているのですけどね

これをちゃんとAに、12:30:15
という形の文字列として入れるのにはどうしたらいいのでしょか

A 回答 (3件)

A = Cells( 1,1 ).text


のように。
    • good
    • 0
この回答へのお礼

ありがとうございました。
これが一番簡単ですぐに出来ました。

お礼日時:2011/12/30 09:55

こんばんは!



「12:30:15」という表示はあくまで見た目で、実際は「0.520・・・」といった数値になります。
すなわち文字列にしても「0.520・・・」という数値が文字列扱いになるだけです。

そこで一案です。
せっかくシリアル値なのでわざわざ文字列に!といった操作をせずに
表示したいセルの表示形式を変えてみてはどうでしょうか?

A1セルのデータをB1セルに表示するとします。

With Cells(1, 2)
.Value = Cells(1, 1)
.NumberFormatLocal = "h:m:s"
End With

といった感じで・・・

参考になれば良いのですが。m(_ _)m
    • good
    • 0
この回答へのお礼

お世話になります。
そういう方法もあるのですね。
でも、1つでいいところを2箇所のセルを使うことになりますね。
今後使うこともあるかも知れません。ありがとうございました。

お礼日時:2011/12/30 10:03

エクセルの日付・時刻シリアル値のことを勉強してない。


それでは、VBAをやるというのに、もっと基礎を勉強しないと早すぎる。
日付時刻シリアル値は「日付時刻の表示形式で、時刻なりに見えている。それを文字列にするにはFormat関数を「使えば良い。
例データ
A列  B列
12:35:2012時35分20秒
14時35分20秒14時35分20秒
11:26:00 AM11時26分00秒
13:24:5013時24分50秒
11:25:5011時25分50秒
ーー
標準モジュールに
Sub test03()
For i = 1 To 5
Cells(i, "B").ClearFormats
Cells(i, "B") = Format(Cells(i, "A"), "hh時mm分ss秒")
Next i
End Sub
    • good
    • 0
この回答へのお礼

別に日付や時刻のことを知らなくてもいくらでもVBくらいできるでしょ。
いい加減な適当な書き込みはみんなの迷惑ですから、書き込まないように。

お礼日時:2011/12/30 10:11

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