- ベストアンサー
エクセルで時間セルをVBで文字列として取り込むには
エクセルです。 時間セルがあって、エクセル上での表示では 12:30:15 という風に表示するようにセルの書式設定でしているのですが、そのセルを VBで取り出そうとして、 A = Cells( 1,1 ) とかってすると、Aには、0.66656 とかって数字が入ってきてしまいます。 Aは文字列として、DIM A as String とかってしているのですけどね これをちゃんとAに、12:30:15 という形の文字列として入れるのにはどうしたらいいのでしょか
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
A = Cells( 1,1 ).text のように。
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 「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
お礼
お世話になります。 そういう方法もあるのですね。 でも、1つでいいところを2箇所のセルを使うことになりますね。 今後使うこともあるかも知れません。ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルの日付・時刻シリアル値のことを勉強してない。 それでは、VBAをやるというのに、もっと基礎を勉強しないと早すぎる。 日付時刻シリアル値は「日付時刻の表示形式で、時刻なりに見えている。それを文字列にするにはFormat関数を「使えば良い。 例データ A列 B列 12:35:20 12時35分20秒 14時35分20秒 14時35分20秒 11:26:00 AM 11時26分00秒 13:24:50 13時24分50秒 11:25:50 11時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
お礼
別に日付や時刻のことを知らなくてもいくらでもVBくらいできるでしょ。 いい加減な適当な書き込みはみんなの迷惑ですから、書き込まないように。
お礼
ありがとうございました。 これが一番簡単ですぐに出来ました。