Excel2010、VBAで押している間カウントする方法
Excel2010は、手頃な価格で高機能な表計算ソフトです。
ファイル(ブック)には複数のシートを作成できて、色々な表やグラフを作れます。
しかし、Excel2010のVBAでフォーム等を押した事を判定するの容易ですが、押している間カウント
する方法が分かりませんでした。使用したパソコンは、下記のソフトを使用していました。
OS : Windows10(64bit)バージョン1909(OSビルド 18363.592)
表計算ソフト : Excel2010(32bit)
以下、Excel2010、VBAで押している間カウントする方法を記載して行きます。
(項目1)
・Excel2010のVBAでフォーム等を押した事を判定するの容易ですが、押している間カウントする
方法が分かりませんでした。
(項目2)
・作りたいプログラムは、以下の通りです。
・フォーム上のボタンを押すと、ボタンを押している間の時間を測定するものです。
(項目3)
・色々と検討した結果、以下のコードとなりました。
・このコードのポイントは、
MouseDown、
MouseUpを使用する事です。
・Module1に、下記を記述します。
Sub test1()
UserForm1.Show
End Sub
・UserForm1に、下記を記述します。
Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift
As Integer, ByVal x
As Single, ByVal y As Single)
Range("B2") = Time
Range("B3") = "測定中"
Range("B4") = "測定中"
End Sub
Private Sub CommandButton1_MouseUp(ByVal Button As Integer, ByVal Shift
As Integer, ByVal x
As Single, ByVal y As Single)
Range("B3") = Time
Range("B4") = "=B3-B2"
End Sub
Private Sub CommandButton2_MouseDown(ByVal Button As Integer, ByVal Shift
As Integer, ByVal x
As Single, ByVal y As Single)
Range("C2") = Time
Range("C3") = "測定中"
Range("C4") = "測定中"
End Sub
Private Sub CommandButton2_MouseUp(ByVal Button As Integer, ByVal Shift
As Integer, ByVal x As Single, ByVal y As Single)
Range("C3") = Time
Range("C4") = "=C3-C2"
End Sub
Private Sub CommandButton3_MouseDown(ByVal Button As Integer, ByVal Shift
As Integer, ByVal x
As Single, ByVal y As Single)
Range("D2") = Time
Range("D3") = "測定中"
Range("D4") = "測定中"
End Sub
Private Sub CommandButton3_MouseUp(ByVal Button As Integer, ByVal Shift
As Integer, ByVal x
As Single, ByVal y As Single)
Range("D3") = Time
Range("D4") = "=D3-D2"
End Sub
(項目4)
・UserForm1は、以下の表示となります。
(項目5)
・以上で、Excel2010、VBAで押している間カウントする方法は終了です。