- ベストアンサー
セルへの入力
A列、1行から指定した行までに次のような処理をVBAをもちいて行いたいのですが教えてください。 A 1 01 2 02 3 03 : 11 11 12 12 13 01 14 02 15 03 : 23 11 24 12 : : 具体的には、各行に01から12を入力するのを繰り返すようにマクロを書きたいのですが。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
01、02・・・と表示するので、セル書式を文字列にするか、『00』のようにする必要があるでしょう。 下は、繰り返しを書き込みたいセル範囲(行数は任意、列数は1列)を選択して実行します。 Sub Kurikaeshi12() Dim rg As Range Dim rw As Long Selection.NumberFormatLocal = "@" ' または"00" For Each rg In Selection rw = rw + 1 rg = Right("0" & ((rw - 1) Mod 12) + 1, 2) Next End Sub
その他の回答 (2)
- HarukaV49
- ベストアンサー率53% (48/89)
処理手順としては、 (1)A1からA12に1~12を入力する (2)A1:A12をコピー (3)A13から出力したい範囲を選択してペースト です。 以上の操作をマクロの自動記録にて確認されることを お勧めします。 後は、この自動記録マクロを多少修正すればスマートな マクロが出来上がります。
- vvooo
- ベストアンサー率33% (3/9)
下記で如何でしょう。 Sub Test() Dim f As Long Dim buf() As Long Dim myX As Long myX = 1000 '指定した行 ReDim buf(1 To myX, 1 To 1) For f = 1 To myX buf(f, 1) = f Mod 12 If buf(f, 1) = 0 Then buf(f, 1) = 12 Next With Worksheets("Sheet1") .Range("A:A").ClearContents .Range("A1").Resize(myX, 1).Value = buf End With End Sub