みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAで非アクティブブックのRow取得

先ほどの質問の文章がおかしかったので再度質問させていただきます。

非アクティブブックの最終行のRowを取得するマクロが
xls形式のファイルだと動いていたのですが、xlsm形式に変更後、エラーになってしまいました。
これは仕様の変更によるものなのでしょうか?
Activeteせずに対処する方法があれば教えて頂きたいです。

マクロを実行しているのは"2.xlsm"で、
このファイルがアクティブの状態で
"1.xls"が非アクティブです。

"2.xls"のファイルだとエラーにならないのに
"2.xlsm"のファイルだとエラーになってしまいます。

Sub ボタン1_Click()
Dim 最終行 As Long

最終行 = Workbooks("1.xls").Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

MsgBox 最終行

End Sub

投稿日時 - 2014-03-28 15:01:11

QNo.8532265

困ってます

質問者が選んだベストアンサー

>Activeteせずに対処する方法があれば教えて頂きたいです。

With Workbooks("1.xls").Worksheets("Sheet1")
  最終行 = .Cells(.Rows.Count, 1).End(xlUp).Row
End With

投稿日時 - 2014-03-29 10:33:28

お礼

Rows.Countがアクティブシートの値を取得するという点に気づきませんでした。
ありがとうございました。

投稿日時 - 2014-03-31 19:58:12

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

再質問に気づかず、前の質問に回答してしまいました。
前の質問の回答を見てください。悪いのはRows.Countです。

投稿日時 - 2014-03-28 15:36:15

あなたにオススメの質問