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

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

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

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

Q&A

解決済

1回答

1152閲覧

アクティブではない状態で指定したシートの行数をカウントしたい(VBA)

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

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

0グッド

0クリップ

投稿2021/11/26 22:19

前提・実現したいこと

複数ファイルから指定したシートのみを取り込み保存するVBAを実行した際に
アクティブではない状態のrawdataシートA列・B列の 空白ではない 行数をカウントしたいです。

発生している問題・エラーメッセージ

エラーは発生していませんが、B列のカウントが出来ずに困っています。
(アクティブシートだとカウントはできますので、B列カウントのシート指定が作動してないように思いますが自身で原因が特定できません。)

該当のソースコード

VBA

1Sub 各列のカウント() 2 3 'A列カウント 4 Dim last As Long 5 Dim i As Long 6 Dim count As Long 7 Dim minrow As Long 8 Dim sh_org As Worksheet 9 Set sh_org = Sheets("rawdata") 10 11 minrow = 2 12 last = sh_org.Range("A5000").End(xlUp).Row'最終行は固定で5000 13 14 If last >= minrow Then 15 count = 1 16 For i = last - 1 To minrow Step -1 17 If Range("A" & i) <> "" Then 18 count = count + 1 19 End If 20 Next 21 End If 22 23 'B列カウント 24 Dim last1 As Long 25 Dim count1 As Long 26 27 last1 = sh_org.Range("B5000").End(xlUp).Row'最終行は固定で5000 28 29 If last1 >= minrow Then 30 count1 = 1 31 For i = last1 - 1 To minrow Step -1 32 If Range("B" & i) <> "" Then 33 count1 = count1 + 1 34 End If 35 Next 36 End If 37 38 '結果の表示 39 MsgBox "A列:" & count & vbCrLf & "B列:" & count - count1 40 41End Sub 42

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

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

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

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

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

guest

回答1

0

ベストアンサー

If文のところで、シートを指定していないのが原因ですね。(指定しないとアクティブシートが対象になる)

vba

1' If Range("B" & i) <> "" Then 2 If sh_org.Range("B" & i) <> "" Then

別案

空白以外のセルのカウントなら、CountA関数を使うと簡単です。

vba

1 minrow = 2 2 last = sh_org.Range("A5000").End(xlUp).Row '最終行は固定で5000 3 If last >= minrow Then 4 count = WorksheetFunction.CountA(sh_org.Range("A" & minrow & ":A" & last - 1)) 5 End If

投稿2021/11/26 23:31

編集2021/11/26 23:50
hatena19

総合スコア33790

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

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

退会済みユーザー

退会済みユーザー

2021/11/27 10:04

ご回答ありがとうございます。 ご指摘いただいた点を修正し、問題なくカウントできました。 別案、非常に勉強になります。 今後も質問する事があるかと思いますので、ご都合よろしい場合はまたお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問