- ベストアンサー
Excelで経過時間を記録する方法
tsubuyukiの回答
- tsubuyuki
- ベストアンサー率45% (699/1545)
例えば、以下。 ActiveXコントロールによるコマンドボタン ・Reset ・SplitTime ・PauseTime ・RestartTime の4つを用意します。 該当シートのシートモジュールに Private Declare Function GetTickCount Lib "kernel32" () As Long Private ATime As Long, BTime As Long, CTime As Long, PTime As Long, RTime As Long Sub Reset_Click() ATime = GetTickCount With Columns("A") .ClearContents .NumberFormatLocal = "[h]:mm:ss" End With Range("A1") = "経過時間" Range("B1") = "講義内容" Range("A2") = "0" Range("B2") = "再生開始" PTime = 0: RTime = 0: CTime = 0 ActiveSheet.Shapes.Range("SplitTime").Visible = True ActiveSheet.Shapes.Range("PauseTime").Visible = True ActiveSheet.Shapes.Range("RestartTime").Visible = False End Sub Sub SplitTime_Click() Dim BMin As Long, BSec As Long BTime = GetTickCount - ATime - CTime BMin = Int(BTime / 1000 / 60) BSec = Int(BTime / 1000) Mod 60 With Range("A" & Rows.Count).End(xlUp).Offset(1, 0) .Value = "0:" & BMin & ":" & Format(BSec, "00") .NumberFormatLocal = "[h]:mm:ss" .Offset(0, 1).Select End With End Sub Sub PauseTime_Click() PTime = GetTickCount ActiveSheet.Shapes.Range("SplitTime").Visible = False ActiveSheet.Shapes.Range("PauseTime").Visible = False ActiveSheet.Shapes.Range("RestartTime").Visible = True End Sub Sub RestartTime_Click() RTime = GetTickCount ActiveSheet.Shapes.Range("SplitTime").Visible = True ActiveSheet.Shapes.Range("PauseTime").Visible = True ActiveSheet.Shapes.Range("RestartTime").Visible = False CTime = CTime + RTime - PTime End Sub を貼り付けます。 Resetボタンを押すと、カウントを開始。 SplitTimeボタンを押すと、経過時間を入力し、B列にフォーカス。 PauseTimeボタンで一時停止(カウント停止)。 RestartTimeボタンで再開(カウント再開)。 以上の機能を持たせてあります。 が、動画プレイヤーとの連携は(私の実力では)やはり無理です。 賢人の来訪をお待ちくださいませ。
関連するQ&A
- Excel2000マクロ
お世話になっております。 マクロのことで教えてください(マクロ初心者です(^_^;)) A列・・日付 B列・・時刻 C列・・数値データ “時刻”が2秒おきのデータなので1分おきのデータを抽出したいので、D列にSECOND関数を使って秒だけを抜き出し、 オートフィルタで“0”だけを抽出し、これで1分おきのデータを抽出し、 B列がX軸でC列がY軸のグラフを作ります。 これをマクロで記録して自動的にやりたかったのです。 ですが、 「D列にSECOND関数を使って秒だけを抜き出し、 オートフィルタで“0”だけを抽出し、これで1分おきのデータを抽出し、・・」 のところは、うまくマクロで自動化できるのですが、 別シートに出来たグラフを見ると、一番最初に記録して作ったグラフがそのまんまできてしまいます。 次のデータでグラフをつくりたかったのですが。。 これはどうしてでしょう? グラフまではうまくできないのでしょうか?
- ベストアンサー
- オフィス系ソフト
- Excelで開始時刻があり(例8:00)に経過時間のセルに600秒と入
Excelで開始時刻があり(例8:00)に経過時間のセルに600秒と入力した場合、出力先のセルの表示を8:10として表示するにはどうしたらいいのでしょうか? A1=8:00開始時刻 B1=600経過時間(単位は秒) C1=出力結果
- ベストアンサー
- その他MS Office製品
- 複数列の重複と空白を削除するマクロ(VBA)
マクロの初心者です。 添付写真のように、複数列の重複セルと空白セルの両方を削除し、各列のデータを10列目から並べたいのですが、この場合、どのようなマクロを書けばよいでしょうか。 データの個数: 列によりますが、最大1000行程度 列数: A~J(空白列はありません)
- ベストアンサー
- Excel(エクセル)
- EXCELの時間計算
セルA1に、「9:43:20」と時刻が入力されています。 セルB1に、「3.2」と時間(分)が入力されています。 セルC3には、A1の時刻から,B1の時間が経過した後の時刻を 表示させたいです。 ※B1の「3.2」を3.2分(3分12秒)として計算したいです。 C3の計算式を教えてください。 ※計算した結果の時刻は,9:46:32です
- 締切済み
- その他MS Office製品
- 経過時間を表示したい
現在の時刻と開始時刻から、経過時間を表示したいです。 現在の時刻は16時30分だったら、16:30 開始時刻は12時15分だったら、12:15という変数があります。 答えで4:30という数字が欲しいです。 経過時間は24時間以下を考えれば良いです。
- ベストアンサー
- Visual Basic
- 経過時間を表示したい
エクセル2000を使用しています。 1つの作業の始まりから終わりまでの経過時間を算出して、1ヶ月ごとに平均経過時間を表示させるようにしたいのですが、どのような関数を使用したらいいのかわかりません。どうぞ、教えてください。 例えば、 始まり(セルA2)2002/7/29 16:49 終わり(セルB2)2002/8/1 10:24(日付が変わってしまう場合) 始まり(セルA3)2002/8/6 10:07 終わり(セルB2)2002/8/6 13:41(同日の場合) 平均を求める関数は、単純にAVERAGEでよいのでしょうか。 なお、マクロの知識は全くありませんので、エクセルの関数で教えていただけるようお願いします。
- ベストアンサー
- オフィス系ソフト
- 【Excel365マクロ】時間短縮方法
下記は「行9~170のH列が空白ならば非表示にする」というマクロです。 ---------------------- Sub 空白行非表示() Sheets("シート1").Select Application.ScreenUpdating = False For rw = 9 To 170 If Range("H" & rw) = "" Then Rows(rw).EntireRow.Hidden = True End If Next Application.ScreenUpdating = True Columns("E:E").EntireColumn.Hidden = True Range("B2").Select End Sub ---------------------- 同様のマクロを多用していますが、行数が多いファイルは開始数秒後に「応答なし」が表示され、終わるのに1分近く時間がかかることが多く困っております。 行数が10行程度のファイルは数秒~10数秒程度で終わることもありますが、同じく1分近くかかることもあります。 上記マクロ以外に数秒で終わるマクロはありませんか? フィルターの使用は無しでお願いします。
- ベストアンサー
- Excel(エクセル)
- エクセル マクロ
A列とB列のどちらか、もしくは両方が空白(0ではなく空白です)の場合、C列に1と入力する という動作をマクロボタンで実行したいのですが上手くいきません。教えてください。
- ベストアンサー
- Excel(エクセル)
- 【マクロ】クリックすると空白を含む列を非表示に
上司にExcelのデータが見づらいと言われて困っています。 下記のようなマクロやVBAを教えていただけないでしょうか? 例えば、 A2のセルをクリックすると、その行(2行目)から空白セルを検索して、そのセルを含む列を非表示にして、データが入っている列だけを表するようなマクロってないでしょうか? (要は、C2とE2が空白セルのとき、A2をクリックして、A/B/D/F~の列だけ表示されるようになるマクロです。 同様に3行目でも、空白セルがB3、C3なら、A3をクリックした時、A/D/E…列だけ表示されて、B・C列が非常時になるような。) 似たような機能があれば、A2クリックでなく別にボタン等を作っても構いません。 ややこしくて、申し訳ございませんが、本当に困っているので、 どうかよろしくお願いいたします。
- 締切済み
- オフィス系ソフト
- エクセルでマクロの記録が出来ません。
エクセルでマクロの記録が出来ません。 エクセルのA列とB列に1,000行のデータがあります。 マクロの記録を起動します。 1.B1セルを選択 2.右クリックで挿入を選択 3.A列とC列にデータが有り、B列は空白となる。 4.B1セルを選択します。右クリックの貼り付けを選択。 マクロの起動前にクリップボードにあらかじめコピーしておいた 以下の式を貼り付けます。 =IF(A1="","",IF(ISERROR(FIND("-",ASC(A1))),IF(LEFT(ASC(A1),1)<>"9",MID(A1,1,3) &"-"&MID(A1,4,5)&"-"&MID(A1,9,2)&"-"&MID(A1,11,2)&"-"&MID(A1,13,2),IF(LEFT(ASC(A1),2)= "9X",MID(A1,1,3)&"-"&MID(A1,4,11),IF(LEFT(ASC(A1),1)="9",MID(A1,1,5)&"-"&MID(A1,6,5)& "-"&MID(A1,11,2)&"-"&MID(A1,13,2),""))),IF(FIND("-",ASC(A1))=6,A1,MID(A1,1,3)&"-"& MID(A1,4,11)))) 5.「Ctrl」+「C」 6.エクセルの左上の名前ボックスを B1 → B1:B1000に変更。B列が選択されます。 7.「Ctrl」+「V」 8.B列に式で変換されたデータが入りました。B列が選択されたままです。 9.「Ctrl」+「C」 10.右クリックで形式を選択して貼り付けで「値」を選んでOKをおす。 セルに入っていた式は全て消えました。B列が選択されたままです。 11.マウスポインタをセルのA1におく。B列の選択が解除されました。 マクロの記録を終了 これでNO.4の操作の時に「記録できません」と表示されます。 データを一旦削除し、再度、A列とB列にデータを入れて マクロを実行してもデータB列がC列に移動しB列は空白です。 実際にマクロの記録中でもNO.1からNO.11の操作は出来ています。 なぜ記録されないのでしょうか? どうすれば記録できますか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
素早い回答ありがとうございます。 早速動作確認しました。 excelは2007なのですが、どうもうまく動かないようです。 ------------------------------------------------------- resetボタン押下後、 「実行時エラー'1004;' 指定した名前のアイテムが見つかりませんでした。」 とエディタが開き「デバックボタン」を押すと、 Sub Reset_Click()内の、 ActiveSheet.Shapes.Range("SplitTime").Visible = True ↑ココがハイライトされます。 マクロを停止して、SplitTimeボタンを押下すると、 2:nn:nnと、おそらくマクロを作成した時間を基準に、経過時間を記載しているようです。 PauseTime、RestartTimeボタンを実行しても、同じようにエラーが出ます。 ------------------------------------------------------- Fixできれば、かなり便利に使えそうですが、私にはスキル不足で、すべて読み解くことはできません。 せめてReset、Splitボタンだけでも正常に使えるようにできないでしょうか。 なにとぞお願いいたします。