教えて!ExcelVBA!

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

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

f:id:m_kbou:20200531134338p:plain

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

 

 

例題

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

[実行前]:

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

f:id:m_kbou:20200531134403p:plain

[実行後]:

①<STAT/STOP>ボタンをクリック(1回目)すると、開始時刻(A2セル)にクリックされた時点の時刻がセットされます。(※この時に状況(G2セル)に”開始”の文字をセットします。このセットによりクリックが1回実行された事が分かります。)

f:id:m_kbou:20200531134424p:plain

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

f:id:m_kbou:20200531134440p:plain

 

プログラミング

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

[記述例]:

Sub サンプル()

  '↓ボタン2回目クリック時
  If (Range("G2") = "開始") Then
    Range("B2") = Time
    Range("C2") = DateDiff("s", Range("A2"), Range("B2"))
    Range("G2") = ""
  '↓ボタン1回目クリック時
  Else
    Range("A2") = Time
    Range("B2:C2") = ""
    Range("G2") = "開始"
  End If

End Sub

IF文を使用して以下いずれかを実行します。

ボタン2回目クリック時:状況欄(G2セル)に”開始”がセットされている場合
終了時刻(B2セル)にTime関数を使用して現在時刻をセットし、更にDateDiff関数を使用して開始時刻(A2セル)~終了時刻(B2セル)の経過秒数を算出し、結果(C2セル)にセットします。また、状況欄(G2セル)をクリアします。

ボタン1回目クリック時:状況欄(G2セル)が”開始以外”がセットされている場合
開始時刻(A2セル)にTimer関数を使用して現在時刻をセットし、更に終了時刻(B2セル)と結果(C2セル)をクリアします。また、状況(G2セル)に”開始”の文字をセットします。

との内容になります。

f:id:m_kbou:20210213073422p:plain

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

 

ダウンロード

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com