本文へスキップ

別館:エクセルQC館 別館:エクセル株式館

  1. トップページ>
  2. Tips>
  3. Excel2010、VBAで押している間カウントする方法

Tipstips

備忘録として、主にパソコン関係のTipsを記載して行きます。


新着情報
@UiPath、メモ
AOffice365、Excel:VBAで画面更新がチラツク時の対策
BOffice365、Excel:勝手に手動計算になる原因
COffice365、Excel:フィルターで3つ以上の条件にする方法
DOffice365、Excel:シート同士の違いを見つける方法

Excel2010、VBAで押している間カウントする方法

Excel2010は、手頃な価格で高機能な表計算ソフトです。
ファイル(ブック)には複数のシートを作成できて、色々な表やグラフを作れます。

しかし、Excel2010のVBAでフォーム等を押した事を判定するの容易ですが、押している間カウント
する方法が分かりませんでした。使用したパソコンは、下記のソフトを使用していました。

OS       : Windows10(64bit)バージョン1909(OSビルド 18363.592)
表計算ソフト   : Excel2010(32bit)

以下、Excel2010、VBAで押している間カウントする方法を記載して行きます。

(項目1)
 ・Excel2010のVBAでフォーム等を押した事を判定するの容易ですが、押している間カウントする
  方法が分かりませんでした。

(項目2)
 ・作りたいプログラムは、以下の通りです。
 ・フォーム上のボタンを押すと、ボタンを押している間の時間を測定するものです。
  

(項目3)
 ・色々と検討した結果、以下のコードとなりました。
 ・このコードのポイントは、MouseDownMouseUpを使用する事です。

 ・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で押している間カウントする方法は終了です。



contents

エクセル将棋館

日本国

地方都市


スポンサード リンク