![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
いつもお世話になります。
Windows XP、Excel 2003です。
シート上の時刻表示を普通の十進法に直す必要が生じました。
例えば「8:30:00(表示書式が"h:mm"なので実際の表示は"8:30")」→「8.30」という具合です。
(「8.5」ではありません)
手動でやる場合、
":"→"."に置換
".00"→""に置換
表示書式を"0.00"に変更
この手順でうまくいったので、(データが大量にある関係で)マクロを組みました。
Selection.Replace What:=":", Replacement:=".", LookAt:=xlPart
Selection.Replace What:=".00", Replacement:="", LookAt:=xlPart
Selection.NumberFormatLocal = "0.00"
ところが2行目でエラーが出るので、調べてみると、1行目の実行後にデータが次のようになっていました。
元データ「20:00:00」→実行後のデータ「8.00.00 PM」
とりあえず、1行目の後に右側3文字を削除するコードを入れ、「PM」の場合は、さらに最後に12を足して、その措置でデータはすべて変換できたのですが、1行目で、
元データ「20:00:00」→実行後のデータ「20.00.00」
という風にする方法はないか、ご存知の方がいらっしゃいましたらよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
エクセルの時刻形式「20:00:00」を「20.00.00」にするのであれば
>普通の十進法
とは言わないと思いますが、A1に「8:30」があるとき
=TEXT(A1,"hh.mm.ss")
で「08.30.00」に変換できます。VBAなら
Range("A1").Value = Format(Range("A1"),"hh.mm.ss")
になります
でも実行結果は「文字列」になりますよ。(「.」が複数含まれるので数値にはなりません)。それで当初の「十進法に直す」は満たしていないのではないでしょうか。
「8:30」→「8.30」のように「分」までの形式なら
Range("A1").Value = Format(Range("A1"),"hh.mm")
結果は「数値」になりますが…
なお蛇足ですが「8:30」を普通の十進数である「8.5」にしたい場合は、元の時刻が入力されたセルの値に「24」を掛けます。すると時刻を十進表示に変換できます。
的確な表現でなくてすみません。
Selection.Value = Format(Selection.Value,"hh.mm")
Selection.Replace What:=".00", Replacement:="", LookAt:=xlPart
Selection.NumberFormatLocal = "0.00"
この方法でできました。
ありがとうございました。
No.2
- 回答日時:
こんにちは。
>元データ「20:00:00」→実行後のデータ「20.00.00」
単に、
Selection.NumberFormatLocal = "h.mm.ss"
ということではありまんせか?
もし、それを実際の数値にしたいのでしたら、
Sub Test2()
Dim c As Range
With Selection
For Each c In .Cells
c.Value = c.Text
Next
End With
End Sub
いつもお世話になります。
c.Value = c.Text
こうすればいいんですね。
参考になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel vba で1と10を正確に判断させる方法を教えてください。 TからU列に1と入力があれば 3 2022/12/26 16:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Visual Basic(VBA) 2つのシートの任意のセルの番号が一致したら、一致した行をコピーする VBA 2 2023/06/19 20:48
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「未使用」と「不使用」ってど...
-
高速フーリエ変換でデータ数が...
-
Excelの“並び替え”で文字コード...
-
PCの内蔵メモリにデータは残る?
-
パレート図等で「N=100」とあ...
-
Excel Webクエリ
-
下記マクロでMsgBox "空白です...
-
XMLデータってなんですか?
-
e-tax 昨年作成したデータを再...
-
エクセルのグラフのデータ系列...
-
データ用HDDの別のPCへの乗せ替え
-
ミュージシャンの権利について
-
格安simをiPhoneとiPadで共有す...
-
シリアルRS-232出力機器からの...
-
ワードの差し込み印刷のデータ...
-
プログレッシブとインターレー...
-
ネットカフェから、メールでき...
-
iPhoneを新しい方へ移行しまし...
-
職務質問で聞かれたデータはど...
-
現場で困っています。2ヶ月ほ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「未使用」と「不使用」ってど...
-
エクセルで年休を管理する方法...
-
PCの内蔵メモリにデータは残る?
-
高速フーリエ変換でデータ数が...
-
アイドルの写真について
-
ネットカフェから、メールでき...
-
3Dプリンターを使う場合 パソコ...
-
【世界はデータで出来ている】...
-
XMLデータってなんですか?
-
Excel Webクエリ
-
ファイザーやモデルナは当時は...
-
Excelの“並び替え”で文字コード...
-
パレート図等で「N=100」とあ...
-
日本通信の当月利用データ量は...
-
データ用HDDの別のPCへの乗せ替え
-
エクセルのグラフのデータ系列...
-
プロ野球の球団別の残塁数を載...
-
インスタの設定について。 イン...
-
スマートウォッチ
-
職務質問で聞かれたデータはど...
おすすめ情報