
No.3ベストアンサー
- 回答日時:
こんにちは。
> 現在時刻を記録することが多いです。
> そのまま簡単に自動入力する方法はCTRL+;を使えばいいことが分かりました。
【CTRL+;】は【CTRL+:】の書き間違いですよね。
> しかし、私の場合は5分単位のキリのいい数字で自動入力したいです。
>
> これを簡単に行うにはどうしたらいいでしょうか?
マクロ(VBA)で対応することになります。他に方法はありません。
マクロと聞くと敷居が高く感じるかも知れませんが、
今回紹介するのはビギナー向きの内容です。
> 例) 5時31分→5時30分(切り下げ) 12時33分→12時35分(切り上げ)
"分"を整数値として扱い、"二捨三入?"して、5分単位で丸める、
ということなのでしょう。(※以下"5分丸め"と略記します。)
時刻には"秒"も含まれますから、
9:30:59 → 9:30 (秒のみ切り下げ)
9:31 → 9:30 (切り下げ)
9:32:29 → 9:30 (切り下げ)
9:32:30 → 9:35 (切り上げ)
9:33 → 9:35 (切り上げ)
9:34 → 9:35 (切り上げ)
9:35:59 → 9:35 (秒のみ切り下げ)
9:36 → 9:35 (切り下げ)
9:37:29 → 9:35 (切り下げ)
9:37:30 → 9:40 (切り上げ)
9:38 → 9:40 (切り上げ)
9:39 → 9:40 (切り上げ)
という風にするのが妥当と思います。
■マクロの動作仕様に関する説明
"分"を5分単位で丸める規則は上に挙げた例の通りです。
マクロは、この機能を使いたいブックに記述します。
内容的には、
"5分丸め"処理をするのはマクロ【現在時刻5分丸め】です。
ブックを開いた時(_Open)、ショートカットキー CTRL+: にマクロ【現在時刻5分丸め】を登録します。
ブックを閉じる前に(_BeforeClose)、ショートカットキー CTRL+: を元に戻します。
という3つのマクロで構成されます。
マクロを登録したブックを開けば、自動的に機能を開始します。
マクロを登録したブックが開いている間であれば、他のブックに対しても機能します。
マクロを登録したブックを閉じれば、CTRL+: は通常の現在時刻に戻ります。
この"5分丸め"機能は、通常の CTRL+: 操作で得られる現在時刻と、以下のように使い分けます。
"5分丸め"時刻を設定する場合 : セルを選択して、 CTRL+:
通常の現在時刻を設定する場合 : セルをダブルクリック、または選択後に数式バーをクリックして、 CTRL+:
セルを編集モードや入力モードで開いている間は、マクロは機能しません。
セルを
■マクロを使えるようにする手順の説明
0)"マクロを登録するブック"を開いておく(試す時は新規のブックを開いておきます)
Alt+F11 を押す ↓
1)Visual Basic Editor(マクロ編集画面)が開く
画面左、"プロジェクト - VBAProject"と書かれたエクスプローラに、
"マクロを登録するブック"の名前 が表示されているのを確認したら、
"マクロを登録するブック"の名前 の左にある +ボタンにて 下階層を開いて ↓
3)"マクロを登録するブック"配下の
"ThisWorkbook"と書かれた行をダブルクリック ↓
4)右側に表示された 真っ白なシートが今回登録するマクロを書き込む"ThisWorkbookモジュール"です。
以下の記述を"ThisWorkbookモジュール"に貼付けます。
' ' ********** この行から **********
Private Sub Workbook_Open()
Application.OnKey "^:", "ThisWorkbook.現在時刻5分丸め"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "^:"
End Sub
Private Sub 現在時刻5分丸め() ' Re8530567
ActiveCell.Value = Format(Round(Time * 288) / 288, "h:mm")
End Sub
' ' ********** この行まで **********
再びAlt+F11 を押して ↓
5)Excel画面に戻ります。
名前を付けて保存します。 ↓
(Excel2007以降であれば、ファイルの種類を、マクロ有効ブック.xlsm、にします) ↓
6)以上で準備完了です
一旦、"マクロを登録したブック"を閉じます。
以後、ブックを開けば"5分丸め"機能が有効になります。
///
以上、何か疑問などありましたら、補足欄にでも書いてみて下さい。
大変丁寧な解説をいただき、ありがとうございました。マクロ初心者の私にも、ご説明の通りにやってみたら動かせました。
マクロがファイルに組み込んだ形になるので、いちいち考えないでもCTRL+:すれば(ご指摘の通り、;と間違えて書いてしまいました)自動的に「二捨三入」してくれて、格段に効率が上がりました!
No.2
- 回答日時:
アクティブセルに時刻表示で、3分未満又は4分以上8分未満の場合は5分単位で切り捨てFLOOR関数使用。
それ以外はCeiling関数で5分単位で切上げ。
マクロで行うしかないと思います、スマートな構文ではありませんが、マクロの一例です。
入力したいセルを選択後下記マクロ実施。
Sub test()
Dim ThisTime, MyTime As Date
Dim x As Integer
ThisTime = Time
x = Right(Minute(ThisTime), 1)
If x < 3 Or (x > 4 And x < 8) Then
MyTime = Application.WorksheetFunction.Floor(ThisTime, 1 / (60 * 24 / 5))
Else
MyTime = Application.WorksheetFunction.Ceiling(ThisTime, 1 / (60 * 24 / 5))
End If
ActiveCell = Format(MyTime, "h:mm")
End Sub
No.1
- 回答日時:
>例) 5時31分→5時30分(切り下げ) 12時33分→12時35分(切り上げ)
>これを簡単に行うにはどうしたらいいでしょうか?
再計算のときに現在時刻を表示するにはNOW()を使えますので、これを応用すれば可能と思われます。
=(HOUR(NOW())&":"&ROUND(MINUTE(NOW())/5,0)*5)*1
手動で再計算するときはF9キーを打鍵します。
単発でCtrl+:を使う必要がある場合は特定のセル(例えばA1)へ背景色と文字色を同じにして現在時刻を設定し、目的のセルへ上記式のNOW()の代わりにA1とすれば良いでしょう。
ありがとうございます。手軽でよさそうですが、NOWのところをそれぞれの時刻に変えてやらないと、他のセルまで今の時刻でそろえて記入されてしまうようです。別途計算式を入れるセルが必要ということですよね? たとえばA1に時刻が入っていれば、B1に計算式を入れてやって再計算というように。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 出退勤管理の遅刻・早退時間について 3 2023/08/10 15:33
- 仕事術・業務効率化 IF関数で時間指定をして、数値を切り上げたいです 1 2022/05/01 23:37
- 時計・電卓・電子辞書 深夜になると自動時刻合わせがあり、その状態を針が止まる事で伝える電波掛時計があります。 自動時刻合わ 1 2022/03/27 01:37
- Android(アンドロイド) Android携帯のキーボード入力で時間入力を簡単にしたい 1 2023/05/17 02:13
- Excel(エクセル) エクセルでシフト表を作成しています。 シフト詳細 朝 7:30〜12:00 4:30 昼 12:00 2 2023/06/18 11:01
- Excel(エクセル) Excel リンク先のエクセルファイルの削除 同時に行を削除したい 1 2022/11/29 16:20
- その他(開発・運用・管理) bashで15分前と現在のエポックタイムの時間を取得したい 2 2023/02/01 19:10
- SOHO・在宅ワーク・内職 パソコンを使った簡単な内職を探しています。 1 2022/06/16 19:06
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- Excel(エクセル) エクセルの折れ線グラフで教えて下さい 1 2023/03/05 22:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
エクセルでマクロ(Excel 4.0)...
-
Excel マクロの編集がグレーに...
-
エクセルで明日の日付を表示す...
-
エクセル マクロ名にブック名...
-
複数のマクロボタンをまとめて...
-
エクセルで、「いいね」のよう...
-
エクセル ボタンに設定したマク...
-
エクセルでマクロを確認できな...
-
Excelのマクロでボタンを押すと...
-
VB2005.NETプログラムから、エ...
-
マクロをマクロを使ってコピー...
-
マクロ実行ボタンを自動削除したい
-
スプレッドシートの文字の色判定
-
他のBOOKにマクロを反映させな...
-
LDPlayerのマクロの編集方法を...
-
エクセルで作られた?マクロを...
-
ルビ削除のマクロの仕様?
-
Excel:マクロを消す方法教えて...
-
強制的にマクロを有効にするVBA
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
複数のマクロボタンをまとめて...
-
エクセル ボタンに設定したマク...
-
Excelのマクロでボタンを押すと...
-
エクセル マクロ名にブック名...
-
エクセルでマクロ(Excel 4.0)...
-
Excelマクロで、稼働中のマクロ...
-
エクセルで、「いいね」のよう...
-
エクセルマクロで、別のブック...
-
エクセルの、記録を終了したマ...
-
エクセルの表を複数枚印刷した...
-
別シートのマクロボタンをマク...
-
LDPlayerのマクロの編集方法を...
-
(Excel VBA)シートコピー時マ...
-
Ctrl+Zが使えない
-
Excelで、マクロが含まれ...
-
他のBOOKにマクロを反映させな...
-
Excel:マクロを消す方法教えて...
-
エクセルで明日の日付を表示す...
おすすめ情報