
Excel VBA アクティブセルからある一定のセルまでの範囲選択
Excel2003を使用しています。
アクティブセルからC列に『計』と入力されている行の1行上のD列までを選択状態にするマクロを作成しようとしています。
C列に『計』と入力されている行は下記のように複数あるので、アクティブセルの行以下に入力されている次のC列の『計』の1行上までとしたいのですが、どのようにコードを書いたらいいでしょうか?
例えば…
A2セルをアクティブにしていてマクロを実行するとA2:D3が選択状態に
A7セルをアクティブにしていてマクロを実行すると、A7:D9が選択状態になるように
という具合です。
わかりづらくて申し訳ありませんが、よろしくお願いします。
A B C D
1 日付 № 品名 金額
2 1/1 1 ○○○ 1,000
3 1/2 2 ××× 1,500
4 計 2,500
5
6
7 1/1 5 ○×○ 2,000
8 1/3 6 ××○ 1,200
9 1/4 7 ×○○ 2,500
計 5,700
:
:
No.2ベストアンサー
- 回答日時:
E列にはデータが無い
D列には必ず"計"がある
"計"の有る行のひとつ下の行にはデータが無い
などの条件が揃うなら
With ActiveCell.CurrentRegion
.Resize(.Rows.Count - 1).Select
End With
watabe007 さま
お礼が遅くなり申し訳ありません。
記載していただいたコードにひとつ条件を追加し、CurrentRegion プロパティを使用する方法で、希望通り動作しました。
ご回答ありがとうございました。
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
'-------------------------------------------
Wendy02 さま
お礼が遅くなり申し訳ありません。
マクロ実行後は選択された範囲内で並べ替えをしたく、“計”までのデータ(行)が多くなるときもあることから、アクティブセル以下、“計”の1行上までの範囲を自動的に選択できればと思い、質問させていただいた次第です。
今回は記載していただいたように、CurrentRegion プロパティを使用する方法でいきたいと思います。
ご回答ありがとうございました。
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
KURUMITO さま
お礼が遅くなり申し訳ありません。
質問文をそのまま記述したようなコードで、VBA勉強中の私にとって、理解しやすかったです。
ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Excel(エクセル) excelで可視セルのみ置換 3 2022/08/04 11:02
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Excel(エクセル) VBA ワークシート指定の1行目を選択をしたい 2 2022/08/20 18:10
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
このQ&Aを見た人はこんなQ&Aも見ています
-
Excelで、activecellから最終列まで選択するvbaはどうすれば?
Excel(エクセル)
-
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
vbaで指定したセルより下の行を指定する方法について vbaの質問です。 例えば、「C6」セルより下
Excel(エクセル)
-
-
4
VBAで特定の文字が入力されたセルを選択
Excel(エクセル)
-
5
エクセル アクティブセルからアクティブセルの行と指定の列を選択するマク
Visual Basic(VBA)
-
6
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
7
”アクティブセル行」の一行下を選択”するマクロ
その他(Microsoft Office)
-
8
【Excel VBA】一番右端セルまでの範囲指定の仕方(途中に空白セルあり)
Visual Basic(VBA)
-
9
VBAでセルを指定した画像のコピー&ペーストを繰り返したい
Excel(エクセル)
-
10
(VBA)アクティブセルを起点に任意のセルを選択する方法
Visual Basic(VBA)
-
11
エクセルで行の一番上にセルに移動させるVBA
Excel(エクセル)
-
12
VBAで検索して指定の位置に行を挿入したい
Visual Basic(VBA)
-
13
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
14
アクティブになっている行をマクロで削除したい
Excel(エクセル)
-
15
VBAを使って検索したセルをコピーして別の場所に貼り付ける。
Visual Basic(VBA)
-
16
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
17
VBA 別シートの同じ日付の欄に値を貼付け
Excel(エクセル)
-
18
アクティブセルから、A列最終行までフィルダウン
Excel(エクセル)
-
19
エクセル マクロ 最終列までを全選択
Excel(エクセル)
-
20
VBA データ(特定値)のある最終行を取得したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルで数字を認識して、行...
-
エクセルで株の分析をしていま...
-
エクセル2016で時間を入力して...
-
VBA マクロ エラー1004 アプ...
-
エクセルで特定の文字列が入っ...
-
エクセル:特定の文字を含むセ...
-
OFFSETで、基準セルを可変にし...
-
Excel2007で、指定範囲の行高さ...
-
エクセル 上下で列幅を変えるには
-
結合されたセルをプルダウンの...
-
Excelのフィルター後の一番上の...
-
【エクセル】自動で、同じ内容...
-
excelのデータで色つき行の抽出...
-
Excel グラフのプロットからデ...
-
EXCELで最後の行を固定
-
空欄を埋めるVBA
-
連続データが入った行の一番右...
-
シートの最終行まで削除 マクロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセル 上下で列幅を変えるには
-
[EXCEL]ボタン押す→時刻が表に...
-
Excelのフィルター後の一番上の...
-
エクセルで特定の文字列が入っ...
-
excelのデータで色つき行の抽出...
-
エクセル マクロで数値が変っ...
-
Excel グラフのプロットからデ...
-
結合されたセルをプルダウンの...
-
エクセル マクロ オートフィ...
-
excel 小さすぎて見えないセル...
-
Excel ウインドウ枠の固定をす...
-
EXCELで最後の行を固定
-
電話番号の入力方式が違うデー...
-
エクセルVBA 最終行を選んで並...
-
エクセルのセルに指定画像(.jpg...
-
エクセル 時間の表示形式AM/PM...
-
連続データが入った行の一番右...
-
Excelで非表示のセルをとばして...
おすすめ情報