質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

3回答

906閲覧

空白行を含むセル範囲の取得

karasu0318

総合スコア28

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2018/07/06 14:07

編集2018/07/06 14:10

VBAで複数の表の項目を集計する物を作成しようとしています。
図のように、空白行を含むセル範囲を取得したいのですがどのようにすればよいでしょうか?(緑の部分)
また表ごとに、行数が可変のためそれにも対応できるようにしたいです。
ご指導のほどよろしくお願いします。
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

右の表で「型番」が消えているのが気になりますが…

要件が許せば、該当の表を「テーブル」にするのが手っ取り早いです。

テーブルにすることで、範囲の管理をテーブルに任せることができ、列単位の参照も行いやすくなります。

vba

1'テーブルのあるワークシート 2Dim ws As Excel.Worksheet 3Set ws = Excel.ActiveCell.Worksheet 4 5 6'テーブルを取得 7Dim myTable As Excel.ListObject 8Set myTable = ws.ListObjects.Item("テーブルの名前") 9 10'テーブルの列の 11With myTable.ListColumns 12 '「項目名」のデータ部分から「備考列」のデータ部分までを取得 13 Dim rng As Excel.Range 14 Set rng = ws.Range( _ 15 .Item("項目名").DataBodyRange, _ 16 .Item("備考").DataBodyRange _ 17 ) 18End With 'myTable.ListColumns 19Stop

投稿2018/07/06 15:48

imihito

総合スコア2166

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

karasu0318

2018/07/22 02:56

返信が遅くなり申し訳ありません。 ご回答ありがとうございました。 要件の関係で、hatena19様のテーブルにしない案にしました。 皆様、ありがとうございました。
guest

0

ベストアンサー

私もimihitoさん提案のテーブルにする案に賛成ですが、別案を。

表のSEQ項目には空白がないとするなら、
SEQのセル位置が A1 として、

vba

1 Dim ws As Worksheet 2 Dim r As Range 3 4 Set ws = ActiveSheet 5 Set r = ws.Range("A1").CurrentRegion 6 Set r = r.Offset(1, 1).Resize(r.Rows.Count - 1, r.Columns.Count - 1)

投稿2018/07/06 17:43

hatena19

総合スコア33620

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

karasu0318

2018/07/22 02:56

返信が遅くなり申し訳ありません。 ご回答ありがとうございました。 要件の関係で、hatena19様のテーブルにしない案にしました。 皆様、ありがとうございました。
guest

0

参加賞で、別案

VBA

1Sub test() 2 Dim Rng As Range 3 4 With activeaheet.Range("A1").CurrentRegion 5 Set Rng = Intersect(.Cells, .Offset(1, 1)) 6 End With 7 MsgBox Rng.Address(False, False) 8 Rng.Select 9End Sub

投稿2018/07/08 01:26

mattuwan

総合スコア2136

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatena19

2018/07/08 03:08

なるほど。Intersectを使うとは。φ(..)メモメモ
karasu0318

2018/07/22 02:56

返信が遅くなり申し訳ありません。 ご回答ありがとうございました。 要件の関係で、hatena19様のテーブルにしない案にしました。 皆様、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問