アプリ版:「スタンプのみでお礼する」機能のリリースについて

処理したい内容はA列に数字1~10まで数字を
A1のセルから順番に入力させるという処理を
For Next を使用して実行させたいのですが上手くいきません。ソースは以下になります。

Sub 記入()
Dim i As Integer
Dim n As Integer
n = 0
For i = 1 To 10
n = n + i
Next
>Range("A" + n) = n
End Sub

>の部分でエラーになります。ここの部分を
A1
A2
A3


   列番号
と A + ○ を繰り返しでカウント変数 n で繰り返しをさせたいのですが、どう処理すればよろしいですか? アドバイスお願いします。

A 回答 (4件)

for nextはその間にある処理を繰り返します。



今回の処理では「セルに値をセットする」という処理も繰り返し実行しないといけません。

For i = 1 To 10
n = n + i
Range("A" & n) = n
Next

これでどうでしょう。Rangeの部分がfor nextの間に入ったので、繰り返し処理されるはずです。
    • good
    • 0
この回答へのお礼

&を使用すれば良かったのですね。アドバイスありがとうございました。

お礼日時:2004/09/11 11:39

>Range("A" + n) = n



文字列と数字の加算となるので「"A" + n」の部分でエラーになります。
文字列の連結でしたら「"A" & n」としてください。

それと繰り返して処理するなら、RengeをFor~Nextの中に入れないといけません。


Sub 記入()
Dim i As Integer
Dim n As Integer
n = 0
For i = 1 To 10
n = n + i
Range("A" & n) = n  'ここに移動
Next
End Sub

それとソースを見ていて気になったのですが、セルの行番号をそのまま表示するだけでよいのですか?
例えば
A1→1
A2→2
A3→3
であれば上記で問題ありませんが

A1→5
A2→6
A3→7
といったように、行番号と違うカウント変数を入れるようであれば、別に変数を作ってRangeのところの右辺の変数nを作った変数に入れ替える必要があります。
(関係なかったら申し訳ないです)
    • good
    • 0

雑感。


>VB初心者です 
表題について質問内容がエクセルVBAですので、VBAとするか
エクセルVBAと書くべし。
>Range("A" + n) = n
各セルに書きこむのだから、For Nextのループ内に入れるべし。
>("A" + n)
文字列結合は+より、&を使うべし。
この方法が旨く行くのは、このケースに限ると思うべし。
文字列で作れば、コーディグや操作と同じ効果があるとは
限らない。むしろない場合が多い。
>Range("A" + n)
Range(”A1”)より、今後使うパターンの主力を
Cells(i,j)をお勧めします。
>n = n + i
1づつ増やすはずで、n = n + 1が適当でしょう。
むしろiを直接使う手もある。
Sub 記入()
Dim i As Integer
Dim n As Integer
n = 0
For i = 1 To 10
n = n + 1
Range("A" & n) = n
Next
End Sub
または
Sub 記入()
Dim i As Integer
For i = 1 To 10
Range("A" & i) = i
Next
End Sub
    • good
    • 0

>Range("A" + n) = n



range("A" & n)

でいいような気がします。
(未検証)
    • good
    • 0

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