教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について説明していきます。

【ExcelVBA プログラミング】(関数12)Time関数のプログラミング例を教えて!

       f:id:m_kbou:20200531134338p:plain

Time関数を使用したプログラミング例を紹介します。

 

【目次】

 

例題

例題は、Time関数を使用して<STAT/STOP>ボタンをクリック(1回目)するとクリックされた時点での時刻が開始時刻にセットされ、もう一度クリック(2回目)するとクリックされた時点での時刻が終了時刻にセットされます。また、2回目のクリックでは開始時刻~終了時刻までの秒数を算出して結果にセットするプログラミング方法です。

[実行前]:

※開始時刻と終了時刻を取得する<STAT/STOP>ボタンを用意します。

f:id:m_kbou:20200531134403p:plain

[実行後]:

※<STAT/STOP>ボタンをクリックすると、開始時刻(A2セル)にクリックされた時刻がセットされます。

f:id:m_kbou:20200531134424p:plain

※もう一度<STAT/STOP>ボタンをクリックすると、クリックされた時刻が終了時刻(B2セル)にセットされます。また、同時に開始時刻~終了時刻までの経過秒数を算出して結果(C2セル)にセットします。

f:id:m_kbou:20200531134440p:plain

 

プログラミング

プログラミングは以下の通りとなります。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。また、ボタンにプログラム内容を割り当てるには、VBAをボタンに割り当てるを参考にして下さい。

-------------------------------------------------

Sub サンプル()

    If (Range("G2") = "開始") Then
        Range("B2") = Time
        Range("C2") = DateDiff("s", Range("A2"), Range("B2"))
        Range("G2") = ""
    Else
        Range("A2") = Time
        Range("B2:C2") = ""
        Range("G2") = "開始"
    End If
   
End Sub

-------------------------------------------------

内容を説明すると、

「①ボタンがクリックされた時点で状況(G2セル)に”開始”の文字がセットされている場合、クリックされた時点の時刻が終了時刻(B2セル)にセットされ、DateDiff関数を使用して開始時刻(A2セル)~終了時刻(B2セル)の経過秒数を結果(C2セル)にセットします。また、状況(G2セル)をクリアします。

②ボタンがクリックされた時点で状況(G2セル)がスペースの場合、クリックされた時点の時刻が開始時刻(A2セル)にセットされ、終了時刻(B2セル)と結果(C2セル)をクリアします。また、状況(G2セル)に”開始”の文字をセットします。」

との意味になります。

 

ダウンロード

上記サンプルプログラムを使用したい場合は、こちらからダウンロードして下さい。

1drv.ms