前提・実現したいこと
ExcelVBAで、以下の要領でマクロを作成しています。
ブックを2つ用意する(以下、それぞれブックA、ブックBとします)
→ブックAのセルC4とセルC5にブックBのフォルダパスを入力
→ブックBを開く(ファイル名はVB側に入力しています)
→ブックBの表(8行×6列、見出し行含む)の行数をカウント
→「ブックBはデータが7つあります」とダイアログボックスを表示
→ブックBを閉じる
発生している問題
ブックBの行数のカウントが上手くいきません。
本来であれば7行になるはずなのですが、
何度試しても、ブックBの行数が1になってしまいます。
該当のソースコード
VBA
1Option Explicit 2 3Sub mergecount() 4 Dim filepath As String 5 Dim filename As String 6 Dim rownum As Long 7 filepath = Range("C4").Value & "\" & Range("C5").Value & "\" 8 filename = "BookB.xlsx" 9 Workbooks.Open filepath & filename 10 rownum = Range("A1").CurrentRegion.Rows.Count - 1 11 MsgBox filename & "は" & rownum & "つのデータがあります" 12 ActiveWorkbook.Close 13End Sub
試したこと
ブックBで直接このマクロを実行したところ、
行数は正しくカウントされました。
VBA
1Sub a() 2 Dim i As Long 3 i = Range("a1").CurrentRegion.Rows.Count - 1 4 MsgBox i & "行" 5End Sub 6
ブックB自体の呼び出しには成功しているので、
フォルダパスは間違っていないと思います…
さいごに
VBAはおろかプログラミング自体が初心者なので、何が原因なのか全く見当がついていません。
しかもブックBが開けないのではなく行数のカウントで詰んでいるので非常にもやもやした気分です。
どなたか原因や解決方法等をご教授いただけると幸いです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー