• ベストアンサー

ExcelVBAについて

お世話になります。 Excelの数式についてお教えください。 do ~ loop の式を使うものですが、 A B C 1  80 2 90 3 85 4 B列に Activecell.Fomurla = ・・・という式を入れ、 A列が空白になるまでループさせたいと思うのですが、この際の do と loopの使い方をお教えください。 宜しくお願いします。

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

基本こんな所でしょうか? 'Forを使用した例 Sub test1() Dim i As Long For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row Cells(i, 2).Formula = "=RC[-1]" Next i End Sub 'Do While セルが空白で無い間処理を繰り返す Sub test2() Dim i As Long i = 1 Do While Cells(i, 1).Value <> "" Cells(i, 2).Formula = "=RC[-1]" i = i + 1 Loop End Sub 'Do Until セルが空白になったら繰り返し終了 Sub test3() Dim i As Long i = 1 Do Until Cells(i, 1).Value = "" Cells(i, 2).Formula = "=RC[-1]" i = i + 1 Loop End Sub 'Loop While セルが空白で無い間処理を繰り返す Sub test4() Dim i As Long i = 1 Do Cells(i, 2).Formula = "=RC[-1]" i = i + 1 Loop While Cells(i, 1).Value <> "" End Sub 'Loop Until セルが空白になったら繰り返し終了 Sub test5() Dim i As Long i = 1 Do Cells(i, 2).Formula = "=RC[-1]" i = i + 1 Loop Until Cells(i, 1).Value = "" End Sub 'If を使用して繰り返しを終了する例 Sub test6() Dim i As Long i = 1 Do Cells(i, 2).Formula = "=RC[-1]" i = i + 1 If Cells(i, 1).Value = "" Then Exit Do Loop End Sub 参考まで

kenchiki
質問者

お礼

早速のご回答、ありがとうございます。 ちょっと、私の質問も悪かったですね。 A列に 80 90 85 B列に例えば「A列の値+40」と言ったような式を入れます。 その式をA列が空白になるまでB列に乗せたいのです。 すいません、分かりにくくて。 宜しくお願いします。

その他の回答 (2)

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

う~んまだ分かってないかも Cells(i, 2).Formula = "=RC[-1]+40" こうゆう事?  A  B  C 1 80 =A1+40 2 90 =A2+40 3 85 =A3+40 4 のような計算式が入りますが、違うの?

kenchiki
質問者

お礼

ご回答ありがとうございます。 そうなのです。 実際はif関数ですが。。。。。。 ご案内の式を入れてみているのですが、反応無いです。 いいところまでは来ていると思うのですが。 あと、すいません、他で立てた同じ質問にもお答えいただき、感謝しております。 ちなみに、行の1には項目が入りますので、実際は2行目から始まります。 うーん、どこがいけないのでしょう。。。。。。。。

  • ple_mania
  • ベストアンサー率42% (9/21)
回答No.1

わたしがよく使うのは Do While 継続条件 処理 Loop 時々見たのは Do Until 終了条件 処理 Loop でした。継続条件はA列が空白でない間、 例えば Trim(セルの値) <> "" みたいになるかと思います。 ごく簡単ですが。

kenchiki
質問者

お礼

ご回答ありがとうございます。 うーん、私が下手なのか、今ひとつうまくいきませんなぁ。。。

関連するQ&A