重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Excel VBA でマクロ処理を作成してます。
現在エラー直らず困っています。

処理は内容は以下になります。
セルを指定 →『Q11』選択
offset() で+1して列を右に1個移動
で、選択したセルには今計算式が入っているが…
その計算式を修正する
修正前  修正後
Q11/3 → Q11
オートフィルでセルの最下位まで確定させる
その後,列を右に3コ移動して (offset関数を使用して移動してます)
後はfor文で繰り返せ… 

といった処理で,以下がソースになります。
Sub test()
Dim str As String
n = 1
For i = 1 To 2
Range("Q11").Select.Offset(, n).Select
▲ActiveCell.FormulaR1C1 = "=RC[123]"
★str = CHAR(CODE("Q") + n)
Selection.AutoFill Destination:=Range(str & "11:" & str & "160")
n = n + 3
Next
End Sub

★マークで現在エラーになっている様です。
関数の使用方法が間違っているのか? エラーが直らず困っています。
▲マークもあまりよくない記述かもしれませんが…試しマクロで作成してコピーしただけのものなので…この辺りもよい記述があればご教授ください。
アドバイス宜しくお願いします。

A 回答 (2件)

str = CHAR(CODE("Q") + n)


は、
多分、
str = CHR(ASC("Q") + n)
だと思います。

Range("Q11").Select.Offset(, n).Select
は、
Range("Q11").Offset(, n).Select
でいいか、または、次の行も含めて
Range("Q11").Offset(, n).FormulaR1C1="=RC[123]"
でいいと思います
    • good
    • 0

通常は、以下のようなコードになるのではないでしょうか?



>▲マークもあまりよくない記述かもしれませんが
そんなことはありません。式に関しては、R1C1方式で良いです。

Sub test2()
Dim i As Long
For i = 0 To 1
 Range("R11:R160").Offset(, i * 3).FormulaR1C1 = "=RC[123]"
Next
End Sub
    • good
    • 0

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