NOW関数を使って自動更新することで実装することができれば楽なのですが、現段階ではそのような機能はありません。マクロを利用して実装していきます。
コピペできるようにしてありますので安心して進めてください。
前準備
左上の「ファイル」をクリック → オプション → リボンのユーザー設定 → 開発のチェックボックスにチェックを入れる。
これにより、上の部分に「開発」という項目が追加されます。
マクロの実装
追加した開発タブから、Visual Basic → 挿入 → 標準モジュールをクリック
表示された記述欄に下記をコピペしましょう。
Dim Time As Boolean Sub Start() Time = True MoveTime End Sub Sub MoveTime() If Time = False Then End Range("A1") = Format(Now, "hh:mm:ss") Application.OnTime Now + TimeValue("00:00:01"), "MoveTime" End Sub Sub StopTime() Time = False End Sub
【蛇足】プログラムの簡単な解説
読み飛ばしていただいて構いません。
ただ、長期的に見た時に知っておくと役立つ時が来るでしょう。
Dim Time As Boolean
Timeという名前の変数を使いますよという宣言です。
Sub Start() Time = True MoveTime End Sub
Startという名前の塊ですよという宣言
Timeという変数を有効にします。
MoveTimeという名前の塊を起動します。(この次で紹介)
ここまでがStartという塊ですよという宣言
Sub MoveTime() If Time = False Then End Range("A1") = Format(Now, "hh:mm:ss") Application.OnTime Now + TimeValue("00:00:01"), "MoveTime" End Sub
MoveTimeという名前の塊ですよという宣言
もし、Timeという変数が無効になったら動作を終了します。
A1セルに次のことを記述します「現在の、時・分・秒」
今の時間に1秒を足して、MoveTimeの塊をはじめからもう一度動作させます。
ここまでがMoveTimeという塊ですよという宣言
Sub StopTime() Time = False End Sub
StopTimeという名前の塊ですよという宣言
Timeという変数を無効にします。
ここまでがStopTimeという塊ですよという宣言
時計を動き出させる
Excelのブックに戻り、開発タブにある挿入 → 左上のボタンをクリック
その後、ドラッグしてボタンを作成します。
すると、マクロの登録画面が出てくるので、Startを選択してOKを押します。
その後、ボタンの名前をStartにしておきます。
同様のやり方でStopのボタンも作成します。こちらはマクロの登録でStopTimeを選択しましょう。
名前の変更まで完了したら適当なセルをクリックするとボタンとしてその場に設置されます。
ボタンの名前や大きさ、場所などを変えたいときにはボタンを右クリックします。
【余談】ボタンを押すのにパスワードが必要にする
スタートボタンは誰でも押せて、ストップボタンはパスワードを入力しないと押せないように変更してみます。
プログラムを下記のように変更します。変更されたのは12行目~16行目です。
Dim Time As Boolean Sub Start() Time = True MoveTime End Sub Sub MoveTime() If Time = False Then End Range("勤怠登録!B1") = Format(Now, "hh:mm:ss") Application.OnTime Now + TimeValue("00:00:01"), "MoveTime" End Sub Sub StopTime() If InputBox("パスワードを入力してください") = "Pass" Then Else MsgBox "パスワードが違います" Exit Sub End If Time = False End Sub
変更部分の解説
If InputBox("パスワードを入力してください") = "Pass" Then Else MsgBox "パスワードが違います" Exit Sub End If
条件を求める塊を作ると宣言し、パスワードの入力画面を表示する。パスワードは「Pass」とする
もしパスワードが間違っていた場合
違うと伝えるメッセージボックスを表示する
あっていたらそれ以降のプログラムを実行する
条件を求める塊はここまでと宣言する
まとめ
マクロを理解できればプログラミングも学習のハードルが下がるでしょう。
ぜひ知っておきたい一つです。
コメント