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.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.2ベストアンサー
- 回答日時:
E列にはデータが無い
D列には必ず"計"がある
"計"の有る行のひとつ下の行にはデータが無い
などの条件が揃うなら
With ActiveCell.CurrentRegion
.Resize(.Rows.Count - 1).Select
End With
watabe007 さま
お礼が遅くなり申し訳ありません。
記載していただいたコードにひとつ条件を追加し、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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
Excelで、activecellから最終列まで選択するvbaはどうすれば?
Excel(エクセル)
-
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
vbaで指定したセルより下の行を指定する方法について vbaの質問です。 例えば、「C6」セルより下
Excel(エクセル)
-
-
4
エクセル マクロ オートフィルの終点の指定について
Excel(エクセル)
-
5
アクティブセルから、A列最終行までフィルダウン
Excel(エクセル)
-
6
(VBA)アクティブセルを起点に任意のセルを選択する方法
Visual Basic(VBA)
-
7
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
8
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
9
エクセル マクロ 最終列までを全選択
Excel(エクセル)
-
10
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
11
同じ作業を複数のシートに実行させるにはどうしたらいいのでしょうか
Visual Basic(VBA)
-
12
エクセルで特定のセル以下の全部のセルの選択方法
Excel(エクセル)
-
13
アクティブになっている行をマクロで削除したい
Excel(エクセル)
-
14
VBA 数式を残して値をクリアについて
Excel(エクセル)
-
15
値を入力後、自動的にアクティブセルが移動するマクロ
Excel(エクセル)
-
16
エクセルで、日付を入力すると、別のセルに文字を自動的に表示させるようにするには。
Excel(エクセル)
-
17
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
18
VBA 検索して一致したセルへジャンプさせたい
その他(プログラミング・Web制作)
-
19
連続データが入った行の一番右端の右側の空白セル
Excel(エクセル)
-
20
エクセル アクティブセルからアクティブセルの行と指定の列を選択するマク
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルで特定の文字列が入っ...
-
エクセル 上下で列幅を変えるには
-
エクセルのマクロで意図しない...
-
アクティブになっている行をマ...
-
excelのデータで色つき行の抽出...
-
Excel 時刻の並び替え
-
Excel グラフのプロットからデ...
-
セルの色によって条件文をつけ...
-
VBAで色の付いているセルの行削除
-
Excelでカタカナ・ひらがな・英...
-
エクセル マクロ オートフィ...
-
Excel VBA アクティブセルから...
-
Excel2007で、指定範囲の行高さ...
-
[EXCEL]ボタン押す→時刻が表に...
-
サイズの違うセル 並べ変え
-
エクセルマクロ オートSUM(合...
-
特定の文字がある行以外を削除...
-
AのセルとB行を比較して、一致...
-
電話番号の入力方式が違うデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
エクセル マクロ オートフィ...
-
【Excel関数】UNIQUE関数で"0"...
-
[EXCEL]ボタン押す→時刻が表に...
-
結合されたセルをプルダウンの...
-
エクセル マクロで数値が変っ...
-
Excel グラフのプロットからデ...
-
AのセルとB行を比較して、一致...
-
エクセル 上下で列幅を変えるには
-
Excel ウインドウ枠の固定をす...
-
特定の文字がある行以外を削除...
-
excelのデータで色つき行の抽出...
-
エクセル2016で時間を入力して...
-
excel 小さすぎて見えないセル...
-
EXCELで最後の行を固定
-
エクセルVBA 最終行を選んで並...
-
VBAで色の付いているセルの行削除
-
エクセルマクロで偶数行(又は...
-
エクセルのセルに指定画像(.jpg...
-
罫線の斜線を自動で引くマクロ
おすすめ情報