• ベストアンサー

エクセルで表のある列を最初から最後まで選択するマクロ

今現在、シートにA3:E700までの大きな表があります。 中のデータは文字列や数値です。 A列B列には途中に空白はありません。C~E列には空白もあります。 この表のB列だけを選択するマクロを書きたいのですが、データは日々増減するため最終行が特定できません。 どのように書けばいいのでしょうか?

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.6

ありゃ、間違えました。 > シートにA3:E700までの大きな表があります > A列B列には途中に空白はありません。 この条件を組み入れて、簡潔に記述すると次のようになると思います。 Range("B3", Range("B3").End(xlDown)).Select ただし、表に1行以上のデータがあるものとします。

otasukey
質問者

お礼

ありがとうございました。 これでやったら、表より下に別のデータがあっても大丈夫でした。 助かりました。

その他の回答 (5)

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.5

> シートにA3:E700までの大きな表があります > A列B列には途中に空白はありません。 この条件を組み入れて、簡潔に記述すると次のようになると思います。 Range("B3", Range("B2").End(xlDown)).Select ただし、表に1行以上のデータ(見出しでも)があるものとします。

  • mizo007
  • ベストアンサー率50% (2/4)
回答No.4

Worksheets("Sheet1").Activate ActiveSheet.Range("B3", ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell)).Select これでどうでしょうか?

otasukey
質問者

お礼

ありがとうございました。 ざんねんながら別の部分まで選択されてしまいました。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 Range("B1:B" & Cells(ActiveSheet.Rows.Count, 2).End(xlUp).Row).Select です。 ActiveSheet.Rows.Countはエクセルの最大行数で、Excel2000なら、65536です。 したがって、 Range("B1:B" & Range("B65536").End(xlUp).Row).Select でもOKです。 なお、データ最終行より下のB列に何か入力があると、そこまで選択してしまいます。

otasukey
質問者

お礼

さっそくありがとうございました。 出来ました!

noname#27115
noname#27115
回答No.2

#1です。 単に無条件にB列だけの選択というのであれば、 Sub Test() Columns("B").Select End Sub でも OK ですね。

noname#27115
noname#27115
回答No.1

Sub Test() Dim myRow As Long myRow = Range("B1:B1").CurrentRegion.Rows.Count Range("B1:B" & pRow).Select End Sub

otasukey
質問者

お礼

さっそくありがとうございました。 出来ました!

関連するQ&A