つれづれ電脳記(日くらしPCに向かひて)

つれづれなるままに、日くらしPCに向かひて、その悪戦苦闘ぶりをそこはかとなく書き付くるおじさん。たまに雑談[管理人:goosyun]

つれづれなるままに、日くらしPCに向かひて、デジタル関係の悪戦苦闘ぶりをそこはかとなく書き付くるおじさんです。
たまに雑談してます。連絡・問い合わせフォームは、ページ最下部に置いています。[著者(運営人):goosyun]

(当ブログには本文中に広告リンクが含まれています。)

【Wordマクロの小技】Word文書の所定の箇所に、現在の時刻を自動入力

昨日、2018年11月18日は、
   「Word文書の所定の箇所に、今日の日付を自動入力」
の記事を書きました。Date関数の紹介でした。

今日は、その関連で、
   「Word文書の所定の箇所に、現在の時刻を自動入力」
の記事を書きます。Time関数の紹介となります。

最初っから、答えを掲げます。
Sub Jikoku1()
  ActiveDocument.Bookmarks("時刻").Range.InsertAfter Time
End Sub

たったのこれだけです。簡単でしょ。

上記コード中の「Time」とあるのは、現在の時刻を取得する関数です。
ですから、「時刻」という名前のブックマークに、「20:13:28」と入ります。

 では、「20:13:28」では分かりにくいので、「20時13分」と表示させるにはどうしましょう。ここでもまた、Format関数を使います。
Bookmarks("時刻").Range.InsertAfter Format(Time,”hh時mm分”)
これが答えです。

 さらに、24時間制ではなく、12時間制で表示させたいときは、どうしましょう。
 「20時13分」を、「午後8時13分」に変える方法です。
 その答えは、次のとおりです。

Sub Jikoku2()
Dim myJikoku As String
If Time >= 0.5 Then
    myJikoku = "午後" & Format(Time - 0.5, "h時mm分")
Else
    myJikoku = "午前" & Format(Time, "h時mm分")
End If
ActiveDocument.Bookmarks("時刻").Range.InsertAfter myJikoku
End Sub


上記コードを、少しだけ解説します。

WordやExcelでは、時刻は全て「シリアル値」という数値で格納されます。
24時間でシリアル値「1」となります。
つまり、シリアル値「0.5」は、「12時」に当たります。
そこで、Time関数で取得した数値が、「0.5」以上か、「0.5」未満かによって、午後と午前に分けることができるのです。

これさえ理解すれば、上記コードの解読ができます。
便利な小技だと思います。ぜひ、ご活用ください。

作って簡単・超便利! Wordのマクロ実践サンプル集 [Word2010/2007/2003/2002対応] (Wordで作ったWordの本)
マクロ実践サンプル集
技術評論社


では、また。