こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBA 11行おきにセルの値を1づつ増やす

セルの値を最終行まで、11行おきに1増やしていく方法をお教えください。
現在1800行あります。
下記の構文を延々と続けるのは、気が遠くなります。
何卒よろしくお願いします。
Private Sub CommandButton1_Click()
With Worksheets("○○○”)
.Range("A1").Value = "1"
.Range("A12").Value = .Range("A1").Value + 1
.Range("A23").Value = .Range("A12").Value + 1
.Range("A34").Value = .Range("A23").Value + 1
.Range("A45").Value = .Range("A34").Value + 1
・・・・・・・
・・・・・・・・
End With
End Sub

投稿日時 - 2018-01-01 19:25:32

QNo.9413911

すぐに回答ほしいです

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

Private Sub CommandButton1_Click()
Dim i as Integer
For i = 1 to 1800 Step 11
Worksheets("○○○").Cells(i, 1).value = (i - 1) * 11 + 1
Next i
End Sub

投稿日時 - 2018-01-01 19:32:31

お礼

nan93850673 さん
お正月なのに
早速の回答ありがとうございました。
思い通りにできました。
また、困ったことがありましたら、よろしくお願いします。

投稿日時 - 2018-01-01 22:33:33

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

繰り返しの手法で処理できます。
For i = 1 To 1800 Step 11
' ここにセルへの代入式を書く
Next i
代入の数式は以下のような方法で良いでしょう。
n = n + 1 ' n の初期値を 0 としたとき
Cells(i, 1) = n
代案( A1セルへ予め 1 を代入しておいて i の初期値を 12 にします)
Cells(i, 1) = Cells(i - 11, 1) + 1

ループには次のような Do ループもありますので好みの方法で対処してください。
Do While [条件式]
[代入数式]
Loop
または
Do Untile [条件式]
[代入数式]
Loop
VBAの入門書で学習しながら順次覚える方法で良いと思います。

投稿日時 - 2018-01-01 22:14:17

お礼

bunjii さん
早速の回答ありがとうございます。
勉強します。

投稿日時 - 2018-01-01 22:41:04

VBAでも、subで定義すると値を返さないけど、function で値を返す関数を書いて、cellsでアドレス指定で・・・・って考えたけど。

イベントドリブンだよ。(って出来てないけど)

投稿日時 - 2018-01-01 21:53:25

お礼

HohoPapa さん
早速の回答ありがとうございます。
勉強します。

投稿日時 - 2018-01-01 22:38:36

ANo.3

VBAによる解を期待しているだろうことから
期待と異なるものと思いますが別解を。

A1に1を埋め
A12に2を埋め
A1からA22を選択(ハイライト)し、
オートフィルの機能を使い
フィルハンドルを下方向に必要数ドラッグします。

投稿日時 - 2018-01-01 21:43:48

お礼

HohoPapa さん
早速の回答ありがとうございます。
勉強します。

投稿日時 - 2018-01-01 22:38:02

ANo.2

For NextのStepを勉強すること。
コマンドボタンなど使う前に勉強するべき。
自分が作って、実行して終わるようなものに、なぜコマンドボタンを使うのか。他の例の引き写しか?
ーー
セルを指定するVBAコードの、Cells(i,"A")のiに、順次に11を加えたセルを指定し、コードの前行のセルの値に+1したものを、代入すれば仕舞だろう。
VBAの本やVBAの指導者について、系統だった勉強をすること。

投稿日時 - 2018-01-01 21:00:51

お礼

imogasi さん
早速の回答ありがとうございます。
Cells(i,"A")が解らなかったもので、勉強します。

投稿日時 - 2018-01-01 22:36:40