• 締切済み

エクセル excel 複数範囲選択マクロ

a列2行目からa列の値がある最下行 と c列2行目からc列の値がある最下行 という範囲を同時に選択するマクロの構文を教えてください。

みんなの回答

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.3

ちなみに、最終行がわかっている場合の書き方は A列最終行=20行目、C列最終行が10行目だとすると     Range("A2:A20,C2:C10").Select その複数の範囲を「,」で区切って、こんな感じで書きます。 最終行を求めるには、例えばA列なら ・A2以降、必ず2つ以上のデータがあり、途中に空白行が無い場合     Range("A2").End(xlDown).Row            または     Cells(2, 1).End(xlDown).Row ・A2以降にデータが無い可能性がある  データが連続していない(空白の行も想定される)場合     Range("A" & Rows.Count).End(xlUp).Row            または     Cells(Rows.Count, 1).End(xlUp).Row として求めてやるのが(おそらく)一般的です。 後者を覚えておけば(ほぼ)間違いないと思います。 組み合わせると、xlUpを使うなら     Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row & ",C2:C" & Range("C" & Rows.Count).End(xlUp).Row).Select こんな感じです。 補記) 範囲を指定した後で、特定のセルにフォーカスを置きたいなら     Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row & ",C2:C" & Range("C" & Rows.Count).End(xlUp).Row).Select     Range("C2").Activate とつけてやると、C2にフォーカスがいきます。 ただし、指定した範囲内にしないと、範囲指定が解除されてしまうので注意です。 ちなみにこれらは「マクロの記録」機能で確認できますのでお試し下さいませ。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

次のようにすればよいでしょう。 n = Range("A65536").End(xlUp).Row m = Range("C65536").End(xlUp).Row Application.Union(Range(Range("A2"), Range("A" & n)), Range(Range("C2"), Range("C" & m))).Select

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

とりあえずこんな感じでどうかな? Sub Sample()   nALast = Cells(Rows.Count, 1).End(xlUp).Row   nCLast = Cells(Rows.Count, 3).End(xlUp).Row   sRange = "A2:A" & nALast & ",C2:C" & nCLast   Range(sRange).Select End Sub

関連するQ&A

専門家に質問してみよう