• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA アクティブセルからある一定のセルまでの範囲選択 )

Excel VBAでアクティブセルから特定の範囲を選択する方法

このQ&Aのポイント
  • Excel VBAを使用して、アクティブセルから特定のセルまでの範囲を選択する方法について教えてください。具体的には、アクティブセルからC列に『計』と入力されている行の1行上のD列までを選択するマクロを作成したいと思っています。
  • C列に『計』と入力されている行は複数あり、アクティブセルの行以下に入力されている次のC列の『計』の1行上までを選択したいです。例えば、A2セルをアクティブにしてマクロを実行するとA2からD3までが選択されるようにしたいです。
  • 具体的なコードの書き方について分かりづらいですが、ご教示いただければと思います。よろしくお願いします。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

E列にはデータが無い D列には必ず"計"がある "計"の有る行のひとつ下の行にはデータが無い などの条件が揃うなら With ActiveCell.CurrentRegion   .Resize(.Rows.Count - 1).Select End With

KOH3193
質問者

お礼

watabe007 さま お礼が遅くなり申し訳ありません。 記載していただいたコードにひとつ条件を追加し、CurrentRegion プロパティを使用する方法で、希望通り動作しました。 ご回答ありがとうございました。

その他の回答 (2)

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

こんにちは。 単にユーティリティ範囲に留まります。たぶん、この後で罫線を引きたいというようなことを考えているのではないかと思います。 以下のTest1 マクロで、ActiveCell は、データのある範囲なら、どこでも良いです。 なお、Cells(1).Text ここは、.Value では判定できません。 '------------------------------------------- Sub Test1()   Dim i As Long   Dim j As Long   With ActiveCell.CurrentRegion   If ActiveCell.Value = "" Then Exit Sub     'タイトルがある場合     If IsDate(.Cells(1).Text) = False Then       i = 1     End If     '範囲の最後の手前に'計'という文字があるか判定     If .Cells(.Cells.Count).Offset(, -1).Value Like "*計*" Then       j = -1     End If     ActiveSheet.Range(.Cells(1).Offset(i), .Cells(.Count).Offset(j)).Select   End With End Sub '-------------------------------------------

KOH3193
質問者

お礼

Wendy02 さま お礼が遅くなり申し訳ありません。 マクロ実行後は選択された範囲内で並べ替えをしたく、“計”までのデータ(行)が多くなるときもあることから、アクティブセル以下、“計”の1行上までの範囲を自動的に選択できればと思い、質問させていただいた次第です。 今回は記載していただいたように、CurrentRegion プロパティを使用する方法でいきたいと思います。 ご回答ありがとうございました。

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

例えば次のようなコードにします。 Sub 範囲選択() Dim RowP As Integer Dim rp As Integer RowP = ActiveCell.Row rp = WorksheetFunction.Match("計", Range(Range("C" & RowP), Range("C1000")), 0) + RowP Range(Range("A" & RowP), Range("D" & rp - 2)).Select End Sub

KOH3193
質問者

お礼

KURUMITO さま お礼が遅くなり申し訳ありません。 質問文をそのまま記述したようなコードで、VBA勉強中の私にとって、理解しやすかったです。 ご回答ありがとうございました。

関連するQ&A