![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.1ベストアンサー
- 回答日時:
要件に一番近そうなマクロを作ってみました。
ただし数点制約があります。・ExcelVBAではマルチスレッドが実現できないので1セル毎でしかカウントできません。
・クリックイベントは無いので、ボタン(CommandButton1)のクリックイベントで
カウントのON/OFFを行っています。
Option Explicit
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public blCountFlg As Boolean
Private Sub CommandButton1_Click()
blCountFlg = Not blCountFlg
Call prc_Count(ActiveCell, Cells(1, 1))
End Sub
Private Sub prc_Count(ByVal Target As Range, MaxCount As Long)
Dim lnStart As Long
Dim lnCount As Long
lnStart = GetTickCount
Do While (blCountFlg And lnCount < MaxCount)
Sleep (100)
lnCount = (GetTickCount - lnStart) / 1000
Target.Value = lnCount
DoEvents
Loop
End Sub
No.3
- 回答日時:
あんまり、パッとしない案です。
シート1のイベントに
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'A1 微調整用
'B1 設定秒数
'C1 開始
'C2 停止
'D1 経過秒表示
'E1 開始時間
'F1 終了時間
Dim i As Long
Dim tt As Single
Dim tA As Single
If Target.Address <> "$C$1" Then Exit Sub
Range("c1").Value = "Start"
Range("c2").Value = "Stop"
Range("d1") = 0
Range("F1") = ""
Range("G1") = ""
tA = Range("A1").Value
Range("E1") = Timer
Do Until i > Range("B1").Value - 1
If ActiveCell.Address = "$C$2" Then
Exit Do
Exit Sub
End If
tt = Timer
Do While Timer < tt + tA
DoEvents ' 他のプロセスに制御を渡します。
Loop
i = i + 1
Range("D1") = i
Loop
Range("F1") = Timer
Range("G1") = "誤差 " & Range("F1") - Range("E1") - Range("B1").Value
End Sub
んで
セル A1 に 1
セル B1 に 10
を入れてセルC1を選択してみてください。停止ははC2を選択。
No.2
- 回答日時:
マクロは、次の通りです。
(数値の最高値には未対応)Sub Test()
If Cells(1, 1) <> 0 Then
Cells(1, 1) = 0
Application.OnTime Now + TimeValue("00:00:01"), "test2", SCHEDULE:=False
End If
Test2
End Sub
Sub Test2()
Cells(1, 1) = Cells(1, 1) + 1
Application.OnTime Now + TimeValue("00:00:01"), "test2"
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- Excel(エクセル) エクセル VBAでセル内容を別の列の最下行に転記したい 2 2022/11/29 08:47
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 11:55
- Excel(エクセル) シート参照を含む数式を連続コピー 3 2022/12/10 11:42
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- Excel(エクセル) EXCEL ActiveX コマンドボタンで実行する前にいったんmsgBoxで確認を求めたい 1 2022/07/06 19:41
- Visual Basic(VBA) エクセルVBAで『A列』に新規で数値を入力し『B列』から右方向の空白セルにその値を貼り付ける方法 4 2022/11/05 08:37
このQ&Aを見た人はこんなQ&Aも見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
「一定の時間間隔で5秒毎にMacro1を実行する」
Excel(エクセル)
-
エクセル、一定時間で数を増やす方法
Excel(エクセル)
-
Excel(エクセル) VBA プロシージャーをミリ秒で繰り返し実行する方法
Excel(エクセル)
-
-
4
EXCELのセルへ、デジタル時計を表示できますか?
Excel(エクセル)
-
5
エクセルVBAにおけるON TIMEメソッドの解除方法について
Visual Basic(VBA)
-
6
エクセルnow関数自動更新
Excel(エクセル)
-
7
40秒毎にセルの値を1ずつ上げたい
Visual Basic(VBA)
-
8
エクセルのマクロをセルの値に応じて自動起動したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel関数-文字列で自動作成さ...
-
エクセルの関数について教えて...
-
Excelデータをコピペして、ペー...
-
職場の人から聞かれており、こ...
-
ユーザー定義関数をアドイン登...
-
Excelで50個のセルに同じ文字を...
-
スプレッドシート、Excelでの数...
-
Microsoft Officeの中古は信用...
-
エクセルで不等号記号(≠)が上に...
-
スプレッドシートで使う数式を...
-
エクセルでの特別な文字を上に...
-
エクセル日付 文字列の関数がエ...
-
A列とB列を参照してC列に連番を...
-
エクセルVBA、別ブックへ転記す...
-
各ページの1番上の表示について
-
エクセルでセルに標準で入力さ...
-
EXCELの質問です 119から足した...
-
pdfの表をexcelにはりつけて計...
-
Excelのif関数で文字が見えなく...
-
【マクロ】アクティブセルにブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報