![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
色々調べたのですが、見つからず困っております。
時間差を求めるマクロコードを教えてください。
例えば、
A1に 18:11:22
B1に 18:15:22
と別々の時刻を入力されているとします。
時刻の差分を出したいのですが、マクロを使用しない場合はC1に=IFERROR(a1-b1,"")とします。
ですがマクロを登録する場合
Cells(1, 1) = Cells(1, 2) - Cells(1, 3)とコードを書いてもエラーになってしまいます。
時刻の差分を求めるにはdateadd関数かformula関数を使用することは調べたのですが
コードの組み合わせが浮かびません。
どなたか教えてください。
後、入力されている分を計算してほしいので繰り返し処理のコードも出来ましたら教えていただきたいです。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんばんは
>Cells(1, 1) = Cells(1, 2) - Cells(1, 3)とコードを
>書いてもエラーになってしまいます
計算方法としては間違ってはいませんけれど、質問文でご説明のセル位置と違っています。
そのコードだと、A1セルに B1 - C1 の結果を記入することを意味しています。
推測ですが、エラーになるのは、B1かC1に文字などが入力されていたりしませんか?
その記述法であれば、
Cells(1, 3) = Cells(1, 2) - Cells(1, 1)
とすれば、そのまま結果が表示できると思います。
(C1セルの表示形式は、時間表示にしておく必要があります)
どうやら、質問者様にはわかりにくいようなので、
Range("C1") = Range("B1") - Range("A1")
という記述法の方が、良いのかもしれません。
ただし、エクセルの時間は負の値を許しませんので、A1>B1 の場合には上記の計算はエラーになります。
ご提示の関数式のように、これを回避するなら、同様の処理を行えばよいです。
If Range("B1") >= Range("A1") Then Range("C1") = Range("B1") - Range("A1") Else Range("C1") = ""
>後、入力されている分を計算してほしいので繰り返し処理のコードも
>出来ましたら教えていただきたいです。
ループ等で繰り返し処理を行う場合は、Cells( row, collumn ) 形式を用いる方が便利です。
例えば、1行目から10行目迄を繰り返すのなら
For r = 1 To 10
Cells(r, 3) = Cells(r, 2) - Cells(r, 1)
Next r
のような要領で、行(または列)を変数にして指定すれば宜しいでしょう。
No.3
- 回答日時:
こんにちは。
>A1に 18:11:22
>B1に 18:15:22
>Cells(1, 1) = Cells(1, 2) - Cells(1, 3)
この前提なら
Cells(1,1)がA1セル、
Cells(1,2)がB1セル、
Cells(1,3)はC1セル
になるけど、C1セル値が時刻でなければエラーになりそうです。
No.2
- 回答日時:
>繰り返し処理のコード
見落としましたが、意味が理解できませんでした
Dim i As Long
i = 1
MsgBox Format(Cells(i, 1).Value2 - Cells(i, 2).Value2, "hh時間,n分,s秒")
日またぎなどは考慮していません
No.1
- 回答日時:
こんばんは
シリアル値として
Dim StartDate As Date, EndDate As Date
StartDate = Range("A1").Value2
EndDate = Range("B1").Value2
MsgBox DateDiff("h", StartDate, EndDate)
MsgBox DateDiff("n", StartDate, EndDate)
MsgBox DateDiff("s", StartDate, EndDate)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAで “:” を含むセルの特定 2 2023/05/11 16:30
- Excel(エクセル) マクロを教えてください 1 2022/11/28 14:52
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」 4 2022/11/08 11:14
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) Excelのマクロについて 2 2022/06/14 03:38
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです 2 2023/03/05 02:44
- Excel(エクセル) エクセルのセル値に対応してマクロを実行する方法を教えてください セルA1が「1」の時にマクロ名「マク 2 2022/06/19 18:45
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
このQ&Aを見た人はこんなQ&Aも見ています
-
初めて見た映画を教えてください!
初めて見た映画を覚えていますか?
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
今の日本に期待することはなんですか?
目まぐるしく、日本も世界も状況が変わる中、あなたが今の日本に期待することはなんですか?
-
人生でいちばんスベッた瞬間
誰しも、笑いをとろうとして失敗した経験があると思います。
-
集中するためにやっていること
家で仕事をしているのですが、布団をはじめ誘惑だらけでなかなか集中できません。
-
TERA TERMを隠す方法
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel・Word リサーチ機能を無...
-
Excel マクロでShearePoint先の...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
Excel_マクロ_現在開いているシ...
-
Excel マクロ VBA プロシー...
-
エクセルに張り付けた写真のフ...
-
マクロ実行時、ユーザーフォー...
-
エクセルで縦に並んだデータを...
-
TERA TERMを隠す方法
-
ExcelのVBA。public変数の値が...
-
エクセルVBAでNAVITIMEを使って...
-
エクセルで別のセルにあるふり...
-
VBAにて別ワークブック上の実行...
-
エクセル VBA実行中のApplicati...
-
【Excel】複数のマクロをまとめ...
-
組んだマクロをメールで送る
-
ソース内の行末に\\
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
エクセルで特定の列が0表示の場...
-
一つのTeratermのマクロで複数...
-
メッセージボックスのOKボタ...
-
Excel マクロ VBA プロシー...
-
Excel マクロでShearePoint先の...
-
エクセルに張り付けた写真のフ...
-
Excel_マクロ_現在開いているシ...
-
ExcelのVBA。public変数の値が...
-
TERA TERMを隠す方法
-
マクロ実行時、ユーザーフォー...
-
ExcelVBAでPDFを閉じるソース
-
Excel VBAからAccessマクロを実...
-
特定文字のある行の前に空白行...
-
エクセルで別のセルにあるふり...
-
【EXCEL VBA】オートシェイプを...
-
エクセルで縦に並んだデータを...
-
マクロで空白セルを詰めて別シ...
-
wordを起動した際に特定のペー...
おすすめ情報