街中で見かけて「グッときた人」の思い出

Dim i As Integer
For i = 5 To 10 Step 2

とすると、A列の5行目から10行目までがiに代入されると思うのですが、
A列の5行から10行のほかにR列の5行から10行、AC列の5行から10行を代入させるにはどうしたらいいですか?

基本的過ぎて申し訳ありませんが、頭がこんがらがってうまく行かないので教えてください。

A 回答 (4件)

Forは、繰り返す意味です。

Forは、Nextと対にして使用します。
For i = 5 To 10 Step 2


Next
i = 5 To 10 Step 2 は、iの値が5から10まで繰り返すでStep 2は、対のNextから
戻る度に2ずつiに加算すると言う意味になります。
繰り返し処理内でiの値を変更しなければ(通常しない)、2ずと加算されiの値は、5,7,9と変化します。

セルに書き込む方法は、色々ありますが、単セルを変数で移動して書き込む場合は
Cells(行番号,列番号)=値 が一般的?に使われます。

>A列の5行目から10行目までがiに代入される.
5~10なので
この場合は、Step 2を無くす必要があります。(Nextから戻る時に1加算されるので)Step を使用する場合は Step 1

Cells(i,1)=i でA列の5~10行に5~10の数値が書き込まれます。
同様に
Cells(i,18)=i   Cells(i,29)=i  とすれば、希望のカタチになると思います。

Cellsの場合、列番号が固定の場合、"A"の様に書く事が出来るので

Dim i As Integer
For i = 5 To 10
Cells(i, "A") = i
Cells(i, "R") = i
Cells(i, "AC") = i
Next

基本的な事なので今一度、しっかり習得しましょう。

参考サイト
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/p …
    • good
    • 0

#3 少し気になったので


>頭がこんがらがってうまく行かない

こんな書き方の方が分かるかな?
Range("A" & i) = i



纏める方法も
Range("A" & i & ",R" & i & ",AC" & i) = i

むしろ、分かり難い?
    • good
    • 0

コードが不十分です。

誤りもあります。

Dim i As Integer
For i = 5 To 10 Step 1
Cells(i,1)=i
Cells(i,17)=i
Cells(i,29)=i
Next i
    • good
    • 0

> Dim i As Integer


> For i = 5 To 10 Step 2
>
> とすると、A列の5行目から10行目までがiに代入されると思うのですが、

この理解が間違いです。
上記のコードだと、i= 5, 7, 9 の時に何かしろ、というそれだけです。

何をするかは別のコードです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報