• ベストアンサー

Excelで現在時刻を5分単位で自動入力する方法

エクセル2010を使っています。 現在時刻を記録することが多いです。 そのまま簡単に自動入力する方法はCTRL+;を使えばいいことが分かりました。 しかし、私の場合は5分単位のキリのいい数字で自動入力したいです。 例) 5時31分→5時30分(切り下げ) 12時33分→12時35分(切り上げ) これを簡単に行うにはどうしたらいいでしょうか? ご教示お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答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分丸め"機能が有効になります。 /// 以上、何か疑問などありましたら、補足欄にでも書いてみて下さい。

acrobot
質問者

お礼

大変丁寧な解説をいただき、ありがとうございました。マクロ初心者の私にも、ご説明の通りにやってみたら動かせました。 マクロがファイルに組み込んだ形になるので、いちいち考えないでもCTRL+:すれば(ご指摘の通り、;と間違えて書いてしまいました)自動的に「二捨三入」してくれて、格段に効率が上がりました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#203218
noname#203218
回答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

acrobot
質問者

お礼

ありがとうございます。マクロを使うのは初めてなんですが、セルを入力した後に一回ずつマクロを動かすということでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答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とすれば良いでしょう。

acrobot
質問者

お礼

ありがとうございます。手軽でよさそうですが、NOWのところをそれぞれの時刻に変えてやらないと、他のセルまで今の時刻でそろえて記入されてしまうようです。別途計算式を入れるセルが必要ということですよね? たとえばA1に時刻が入っていれば、B1に計算式を入れてやって再計算というように。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルでの現在時刻入力

    簡潔に。 エクセル(2002.SP3)で現在時刻を入力するのに 「Ctrl」+「*」で入力できるかと思いますが 「分」までしかデータがありません。 「秒」の単位まで簡単に入力したいのですが いい方法ありますでしょうか? え~残念ながら今手元に解説本も何もない状態です。 くわしくご親切なかた オネガイシマス。

  • エクセルの時刻入力で、15分単位に変換したい

    エクセルにタイムカードの時刻入力をしたいのですが、 経理上の計算は15分単位で行っている為、以下が可能か どうか教えて下さい。 実際の打刻時間(12:17等)を入力して、 経理上の単位(12:15等)に変換させたい。 ご存知の方いらっしゃいましたらご教示下さい。 宜しくお願いします。

  • エクセルで時刻を自動入力する方法

    教えてください。 エクセルで、たとえばA1のセルに自分の名前を入力したときB1にそのときの時刻が入力される。5分後、A2に自分の名前を入力したときB2にその時の時刻が自動で入力される。ただしこの時A1の時刻はA2に自分の名前を入力したときのままで固定されている。この操作を100回くらい繰り返しても時刻は入力したときのまま。 上記内容はエクセルでどうやればできるのでしょうか?

  • キー入力した現在時刻が表示されるソフトor手法を探しています

    キー入力した現在時刻が表示されるソフトor手法を探しています。 具体的に言いますと、 『1』と数字を入力(テンキーを押す)した時の秒単位の現在時刻を表示・記録したいと考えています。 例えば、 『1』と少し経ってから『2』と入力した時  ↓ 『1 … 17:50:23』 『2 … 17:51:01』 のような記録は残せないものでしょうか? 基本的にテンキーで数字の入力(一桁)を入力します。 キーを連続的に押す(数字『12』や言葉『hello』)行為はしません。 御回答、お待ちしております。

  • エクセルで分表示を時間表示に変更後30分単位切上

    エクセルで分表示を時間表示に変更後30分単位切上げたいのですが、エラーになってしまいます。 分表示を時間+分表示にするには 例)380分⇒6時間20分  ・・・更に30分単位で切り上げて ・・・ 6時間30分 =TEXT(L2/(60*24),"[h]時間mm分") または =INT(L2/60)&"時間 "&MOD(L2,60)&"分" と入力しています。 30分単位の切り上げには =CEILING(M2,"0:30") と入力しています。 ※L2に分単位データ、M2に時間+分データが入っています 上述の通りに関数を設定すると切り上げのところがエラー #VALUE! と表示されてしまいます。 ちなみに単に切り上げのみの場合は問題なく表示されます。 つまり間に分⇒時間変換をかませるとどうも切り上げの際にエラーになってしまう ようなのですが、何か方法はございますでしょうか? 何卒よろしくお願い申し上げます。

  • エクセルの入力で15分単位以外をエラーにするには?

    エクセルの入力で15分単位以外をエラーにするには? 書式設定が時刻で通常は3:15,2:30,4:45というかたちで入力するのですが、 先日6:30を間違えて6.5と入力し、156時間となりました。 入力規則でMOD関数で15分単位にしてもエラーにならないのでどうしたら良いかと。。。 ●:●●で入力されていて、かつ15の倍数以外エラーにする方法を教えてください

  • エクセルでの時刻をすばやく入力するには

    エクセルでの入力を簡単にする方法を教えてください。 時刻の入力で13:25を「1」、「3」、「2」、「5」と 数字を4個入力するだけで表示が「13:25」となるように するにはどうしたらよいでしょうか。

  • 現在時刻 minus 5分

    エクセルのセルに、”CTRL”と”:”を同時に押し、現在時刻を表示します。 その表示時刻から、5分(或いは任意の時間)前の時刻を表示させる計算式を教えて下さい。(どんな表現の数値をマイナスすればよいのか?)

  • Excelで90分後を自動計算

    Excelで、入力した時刻に対して90分後を自動計算させたいのですが、 どのような式にしたらいいのでしょうか?

  • エクセルの自動入力

     いつもお世話になります。今回は、2000のエクセルの自動入力について質問させていただきたく書き込みさせていただきました。小生は、会社で会計係から配布されたエクセルの雛形を使っていつも収支出の入力を行っていました。ところが先日どこかをいじってしまったようで、具合が悪く困っております。  先日までは、セル1Aに入力した数字が5A、10Aという風に一番上のセルに入力すると同じ数字が自動的に入力されるという設定になっておりました。ところが、先日より自動で入力されず、再計算という風に表示されるようになってしまいました。Ctrlで選択して入力しようと思いましたが、毎日毎回選択して入力するのも面倒でどうして良いか迷っております。どうか、ご回答のほどよろしくお願いします

専門家に質問してみよう