• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:12か月分の日付データを繰返し記入したい)

12か月分の日付データを繰返し記入したい

このQ&Aのポイント
  • マクロを使用して、12か月分の日付データを繰り返し記入したい場合について質問があります。該当のマクロが正常に実行されないため、修正が必要です。
  • 実現したい処理は、指定された範囲のセルに12か月分の日付データを記入することです。具体的には、特定の列に指定された日付を入れ、その下に12か月ごとの日付を繰り返し入力します。
  • マクロの記述に誤りがあり、正常に処理されない理由がわかりません。具体的な修正方法や注意点について教えていただけると助かります。

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

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8529/18256)
回答No.1

For r = 2 To sh1.Cells(Rows.Count, 1).End(xlDown).Row Step 12 を For r = 2 To sh1.Cells(Rows.Count, 1).End(xlUp).Row *12 Step 12 としてみたらどうでしょう。

samugetan-chan
質問者

お礼

ありがとうございます!こちらの方法でを参考にさせていただき、無事期待していた動作を実現できました。。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

質問の意味と実現してほしい結果が、質問からでは伝わらない。 >、知識のある方からご助言い・・ というより、質問者は、コンピュター的に処理内容を文章で正確に書く訓練の方がずっと大切だと思う。問題そのものは多分VBAベテランでないと答えられないものではないと想像するから。 それと、結果例(値)とそれを出すセル(列、行)を例示・明示して質問すべきだ。 ーー 月初日だけ1年分(12日分、12行)シートに書くのは簡単。 R列R1からとして Sub test01() For i = 1 To 12 Cells(i, "R") = DateSerial(2020, i + 2, 1) Next i End Sub でできる。 >12か月分の日付 という意味があいまい。普通は356日分(365行)を想像するが。 ーー これを5年先までの分をセルに作りたいというのか? ーー それ以上の繰り返しの結果はあるのか。 それをどの列に出すのか。 ーー 手操作でもできる。VBAはマクロの記録をとればよい。 ーー 日付については、エクセルの考えは、特別(初心者には想像できない)な方法で扱っている。 その日付シリアル値のことをご存じ(勉強した)か。 上記の私のプログラムで、13月になる場面があるが、エクセルは、その13月を、12を引いて1月とし、年を1足してくれる(繰り上げ)など、VBAを経験しないとわからないと思う。

関連するQ&A

専門家に質問してみよう