• ベストアンサー

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ではなく、 右→右→右というような記述は出来ますか?

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

こういうことですか? Sub test01() ActiveCell.Offset(0, 1).Activate End Sub

hikari_tai
質問者

お礼

アドバイスいただきまことにありがとうございます。 結局移動後の、範囲指定という方法はあきらめました。 しかし、こちらの方法は使わせて頂いています。 ありがとうございました。

hikari_tai
質問者

補足

早速のアドバイスありがとうございます。 merlionXX様のいう通りです。 ところでついでというと失礼かもしれませんが、 今回の質問の通り L2からN2まで移動した後、 L2からN2まで選択したいと思います。 ですが、マクロの自動保存では Range("L2:N2").Select となってしまいます。 そこでN2まで移動した後に、 行は同じで3列前から今の列までを範囲選択するという記述はできますか?

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 >Range("L2").Select >Range("M2").Select >Range("N2").Select としても、Offset(,1).Select とか、ループにしても、それは、ただ、スルスルっと右に動いていって、最後に256列まできて、エラーを出して終わりなんですね。 他には、MoveAfterReturnDirection なんていうものもありますが、実際は、どうされようとしているのでしょうね?

hikari_tai
質問者

お礼

回答を頂きまことにありがとうございます。 この件については、No.1様の回答を参考にさせていただきました。

hikari_tai
質問者

補足

確か、隣のセルに移動して関数を挿入する。 それを数行繰り返す。 そして最終的に関数を挿入する事により、 得られた結果を数字のみをコピーで関数自体は消去する。 こういった流れでした。 ですので、全体的な流れの希望としては、 スタートのセルに関数を挿入、右のセルに移動して関数を挿入・・・(これを数列分繰り返す)。 そして、下の行に移動して同じ事を繰り返す。 最終的に範囲指定で数字のみコピー。 こんな流れです。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

むずかしいですねえ! うまく行くかどうか保証の限りではありませんが・・ 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

関連するQ&A