• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA 引き算の繰り返しを教えてgoo)

Excel VBA 引き算の繰り返し方法を教えてください

このQ&Aのポイント
  • VBAでセルの値(時間)左辺から引き算でセルの値(時間)右辺を繰り返し行い、答えを別のセルに表示したいです。
  • 左辺の時間は絶対参照で固定され、右辺の時間はセルの位置が下へ一つずつ移動していきます。
  • 右辺の値が最終行になるまでこの処理を繰り返したいです。どなたかサンプルコードを教えていただけませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • jin34
  • ベストアンサー率80% (17/21)
回答No.2

No.1です。 「--」で止まらないようにするため、 「If IsNumeric(Cells(i, 5)) Then」という条件をつけているわけです。 これにより、E列で数値以外のセルに当たった時には計算をスキップさせます。 Do Loopだと動かないということではありません。 私の書いたコードでもこのIf節を使えばちゃんと動きます。 その点は私の理解不足でしたのでごめんなさい。

Ossan-baby
質問者

お礼

いえいえ、お詫びするのは、こちらの方で、No.1様は、あやまらないでください。 お教え頂きました通り、Do Loop でも、もし、セルの値が数値なら、とIsNumeric 節を入れたら、 動きました。大変勉強になりました。どうも有難うございます。 今後共、宜しくお願い致します。

その他の回答 (1)

  • jin34
  • ベストアンサー率80% (17/21)
回答No.1

関数でやるとするとこういうことでしょうか。 G3=$E$2-E3 G4=$E$2-E4 で、Gx=0になるまで繰り返し処理したいと。 E3以下はあらかじめ入力してあるとしたらこんな感じでしょうか。 Dim i As Integer i = 2 Do i = i + 1 Cells(i, 7)=Cells(2, 5).Value-Cells(i, 5).Value Loop While Cells(i, 7)>0

Ossan-baby
質問者

お礼

ご回答有難うございました。Do Loop ですと、セル値が - - のセルの前で止まってしまいました。 ヤフー知恵袋のカテゴリマスター様から、下記の回答をいただきまして、動きました。どうして、下記のコードだと、- - を飛ばして、下の行からまた、表示されるのか、ワタスには、わかりません。もし、おわかりになれば、お教えください。 Dim i As Integer For i = 3 To Cells(Rows.Count, 5).End(xlUp).Row If IsNumeric(Cells(i, 5)) Then Cells(i, 7) = Format(Cells(2, 5) - Cells(i, 5), "h:mm") End If Next

関連するQ&A