いつも大変お世話になっております。今回も教えてください。測定時間の換算で切り上げする方法なのです。
計測データをCSV変換し、同時に秒を分に切り上げたい。
シートに手作業でB2からC3セルに数式を入れた場合。
A2セルに14401(秒)
B2セルに'=$A2/24/3600 → 4:00:01
C2セルに'=CEILING(B2,"00:01") → 4:01
この関数と同じ事をマクロでC2セルよりC100セルまで変換できるようにしたいのです。
Range("C2").Value = Application.WorksheetFunction.Ceilingを使ったのですが上手くいきません。
Ceilingの扱いがマクロでは使えないのか困ってます。
秒単位で切り上げ計算するマクロの方法はありますでしょうか?いろんな方法を教えてください。
(1秒切り上げで、上記例の「4:00:01」だった場合は「4:01」としたいのです。)
No.4ベストアンサー
- 回答日時:
こんにちは!
>秒単位で切り上げ
すなわち秒が0より大きい場合はすべて切り上げて分単位に表示する!というコトですよね?
>上手くいきません
とはどのように上手くいかないのかこちらでは判らないのですが、
この手の問題として浮動小数誤差が考えられます。
(他の原因ならごめんなさい)
その解決策として、B列の小数点以下の数値を5桁程度で丸めてみてはどうでしょうか?
尚、秒単位の場合は丸めた桁数でも誤差が生じるかもしれませんので、
念のために「秒」が0以外の場合にのに切り上げとしてみた方が良いかもしれません。
関数で簡単にできますが、今回はマクロがご希望のようなので一例です。
Sub Sample1()
With Range("B2:B100")
.Formula = "=ROUND(A2/24/60/60,5)"
.NumberFormatLocal = "[h]:mm:ss"
End With
With Range("C2:C100")
.Formula = "=IF(SECOND(B2)>0,CEILING(B2,""0:01""),B2)"
.NumberFormatLocal = "[h]:mm"
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.3
- 回答日時:
sub macro1()
dim r as long
for r = 2 to cells(rows.count, "A").end(xlup).row
cells(r, "C") = application.ceiling(cells(r, "B"), timevalue("0:1"))
next r
end sub
計算の仕方は同じですが,「全く同じ式で出来る」ワケでは勿論ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロ ブック間である範囲をコピー Workbooks(“a.xlsx“).Sheets 3 2022/05/12 17:02
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- Excel(エクセル) 至急です><Excelの関数を教えてください。 2 2022/03/22 17:56
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) エクセルで時間の合計 5 2022/06/04 10:54
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
- Excel(エクセル) エクセル VBA セルの結合 2 2022/09/07 11:48
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
Excel内での検索結果をシート...
-
エクセル 数字をすべて○などの...
-
Excelで、図形内の文字をセルに...
-
マクロを実行すると画像がズレ...
-
エクセルでPDFリンクを大量...
-
VBA 見つからなかった時の処理
-
現在のセルの位置を返す関数は...
-
エクセルでページ数をあるセル...
-
太字に設定されているセルの個...
-
Excelで挿入した図をセルの中央...
-
セルがクリックされた回数をカ...
-
フォントの色を指定して削除出...
-
エクセル 未入力セルがあると...
-
Excel2007 色のカウント (VBA)
-
クリックすると文章が表示され...
-
Excel ハイパーリンクのURLを別...
-
エクセル シート保護された共...
-
エクセルでの検索ボックスの作...
-
シート保護とグループ化機能を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
エクセル 数字をすべて○などの...
-
Excel内での検索結果をシート...
-
太字に設定されているセルの個...
-
クリックすると文章が表示され...
-
Excelで挿入した図をセルの中央...
-
【マクロ】ファイル名の変更に...
-
Excelで、図形内の文字をセルに...
-
マクロを実行すると画像がズレ...
-
Excel ハイパーリンクのURLを別...
-
フォントの色を指定して削除出...
-
Excelでセルをクリックす...
-
Excel2007 色のカウント (VBA)
-
エクセルでの検索ボックスの作...
-
現在のセルの位置を返す関数は...
-
エクセル マクロ チェックボックス
-
VBA 見つからなかった時の処理
-
アポストロフィーの一括挿入 ...
-
エクセルでPDFリンクを大量...
-
セルの値が変ると自動でマクロ...
おすすめ情報