ExcelVBA時間関数
VBA Time関数は現在の時刻を返します。また、この関数には引数がまったくないことにも注意してください。覚えておくべきもう1つの重要な要素は、この関数が現在のシステム時刻を返すことです。この関数を使用すると、コード行がプロセスを完了するのにかかる実際の時間を実際に見つけることができます。
TIMEは一種の揮発性関数であり、構文はありません。
Excelにも同様の関数があります–スプレッドシートに現在の時刻と現在の日付の両方を挿入するNOW()関数
時間()
関数を入力するだけです。実際、現在の時刻を挿入するには、TIMEだけを囲むために括弧を付ける必要はありません。TIME関数によって与えられた結果は文字列にあります。
VBAでTIME関数を使用する方法は?
Excel関数の単純なTIMEの例を示します。以下の手順に従って、TIME関数を使用するコードを作成します。
このVBA時間関数テンプレートはここからダウンロードできます–VBA時間関数テンプレートステップ1:マクロを作成します。
コード:
Sub Time_Example1()End Sub
ステップ2:変数を文字列として宣言します。
コード:
Sub Time_Example1()Dim CurrentTime As String End Sub
ステップ3: TIME関数を使用してこの変数に値を割り当てます。
コード:
Sub Time_Example1()Dim CurrentTime As String CurrentTime = Time End Sub
ステップ4:メッセージボックスに結果を表示します。
コード:
Sub Time_Example1()Dim CurrentTime As String CurrentTime = Time MsgBox CurrentTime End Sub
F5キーを使用してこのコードを実行するか、手動で現在の時刻を取得します。
したがって、このコードを実行したときの時間は11.51.54AMでした。
Now()関数の代替
NOW機能の代替としての日付と時刻の組み合わせ
記事の冒頭で述べたように、今すぐ現在の日付と時刻を挿入できます。ただし、NOW関数の代替関数として他の2つの関数を使用できます。これらの2つの関数は、VBADATE関数とVBATIME関数です。
VBA Dateは現在の日付を返し、Timeは現在の時刻を返すので、これによりNOW関数が作成されます。以下は、セルA1に現在の日付と時刻を挿入する一連のコードです。
コード:
Sub Time_Example2()Range( "A1")。Value = Date& ""&Time End Sub
このコードは、セルA1に現在の日付と時刻を挿入します。
FORMAT関数を使用して、これらの値にフォーマットを適用することもできます。以下のコードは、日付と時刻をフォーマットします。
コード:
Sub Time_Example2()Range( "A1")。Value = Date& ""&Time Range( "A1")。NumberFormat = "dd-mmm-yyyy hh:mm:ss AM / PM" End Sub
このコードの結果は次のようになります。
VBAの時間関数を使用してワークブックのオープンレコードを追跡する
多くの場合、ワークブックの開始時間-頻度を知る必要があります。ブックを頻繁に開いて、いくつかの変更を加える状況があります。ワークブックのオープン時間と日付を追跡することで、ワークブックのオープン時間を追跡できます。
新しいシートを作成し、名前を「トラックシート」に変更します。
ステップ1: VBEエディターからこのワークブックをダブルクリックします。
Step 2: Select the workbook from the object drop-down list.
Step 3: As soon as you select this option you can see new macro automatically created by itself in the name “Workbook_Open()”.
Step 4: Inside this macro, we will need to write a code to track the workbook opening date & time.
I have already written code and below is the code for you.
Code:
Private Sub Workbook_Open() Dim LR As Long LR = Sheets("Track Sheet").Cells(Rows.Count, 1).End(xlUp).Row + 1 Sheets("Track Sheet").Cells(LR, 1).Value = Date & " " & Time() Sheets("Track Sheet").Cells(LR, 1).NumberFormat = "dd-mmm-yyyy hh:mm:ss AM/PM" End Sub
This will record your workbook opening times like the below one.