- ベストアンサー
EXCEL VBAでのフォーカスの移動の記述は?
EXCEL VBAでL2→M2→N2と移動したいと思います。 そして同じ移動順序を下の行でも行いたいと思います。 (L3→M3→N3という風に) しかし、マクロの自動記憶でやったところ下記のように記憶されてしまいます。 Range("L2").Select Range("M2").Select Range("N2").Select これをL2→M2→N2やL3→M3→N3ではなく、 右→右→右というような記述は出来ますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こういうことですか? Sub test01() ActiveCell.Offset(0, 1).Activate End Sub
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >Range("L2").Select >Range("M2").Select >Range("N2").Select としても、Offset(,1).Select とか、ループにしても、それは、ただ、スルスルっと右に動いていって、最後に256列まできて、エラーを出して終わりなんですね。 他には、MoveAfterReturnDirection なんていうものもありますが、実際は、どうされようとしているのでしょうね?
お礼
回答を頂きまことにありがとうございます。 この件については、No.1様の回答を参考にさせていただきました。
補足
確か、隣のセルに移動して関数を挿入する。 それを数行繰り返す。 そして最終的に関数を挿入する事により、 得られた結果を数字のみをコピーで関数自体は消去する。 こういった流れでした。 ですので、全体的な流れの希望としては、 スタートのセルに関数を挿入、右のセルに移動して関数を挿入・・・(これを数列分繰り返す)。 そして、下の行に移動して同じ事を繰り返す。 最終的に範囲指定で数字のみコピー。 こんな流れです。
- merlionXX
- ベストアンサー率48% (1930/4007)
むずかしいですねえ! うまく行くかどうか保証の限りではありませんが・・ Sub test02() Static a As Integer If a > 2 Then a = 0 a = a + 1 MsgBox a If (a Mod 3) <> 0 Then ActiveCell.Offset(0, 1).Select Else ActiveCell.Resize(1, 3).Offset(0, -2).Select End If End Sub
お礼
アドバイスいただきまことにありがとうございます。 結局移動後の、範囲指定という方法はあきらめました。 しかし、こちらの方法は使わせて頂いています。 ありがとうございました。
補足
早速のアドバイスありがとうございます。 merlionXX様のいう通りです。 ところでついでというと失礼かもしれませんが、 今回の質問の通り L2からN2まで移動した後、 L2からN2まで選択したいと思います。 ですが、マクロの自動保存では Range("L2:N2").Select となってしまいます。 そこでN2まで移動した後に、 行は同じで3列前から今の列までを範囲選択するという記述はできますか?