あるファイル内の複数ブックから特定のシートを抽出して、一つのブックに集約する(親ブックの末尾に貼り付ける)マクロを作っていますが、エラーになってしまいます。(私の力量では原因が特定できませんでした)
エラーの内容は、後ろから5行目の「fm.」の後の「Worksheets 」に対して「コンパイルエラー プロパティの使い方が不正です」というメッセージが出るものです。
Option Explicit
Sub 集計マクロ()
Dim fPath As String, fName As String, fm As Workbook
fPath = "C:¥Users¥nm¥Desktop¥マクロテスト¥"
fName = Dir(fPath & "¥**_test.xlsx")
fm = Dir(fPath & "¥集計マクロ.xlsm")
Do While fPath & fName <> ""
Workbooks.Open (fPath & fName)
ActiveWorkbook.Worksheets("sheet1"). _
CopyAfter: fm.Worksheets (Worksheets.Count)
ActiveWorkbook.Close SaveChanges:=False
fName = Dir()
Loop
End Sub
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
#2です 見直しに来ましたら、、
脱線して、肝心な コンパイルエラー プロパティの使い方が不正です
の部分を書いていませんでした。(書いたつもりで・・)
fmはブックとして宣言されていますので
fm.Worksheets(Worksheets.Count)に問題がある訳ではなく
=が無い事が理由で
Worksheetsはコンパイルエラーが返ります(文法が間違っている)
単体で(意味はありませんが)
ActiveWorkbook.Worksheets (Worksheets.Count)
と書いた場合コンパイルエラーです
単体で
ActiveWorkbook.Worksheet
や
ActiveWorkbook.Worksheets (Worksheets.Count).Range
と書くと実行時エラーです(コンパイルできてしまう)
実行時エラーは
CopyAfter: や fm = Dir(fPath & "¥集計マクロ.xlsm")
(#2に挙げた部分)などがあります
オブジェクトによって コンパイルエラー、実行時エラー
構造などの絡みがあるのかも知れませんが、VBAはこの辺りが?と思います
良く見直せば自身で直せると思いますよ
No.2
- 回答日時:
こんばんは
サンプルコードはすでに回答されていますが
>エラーになってしまいます。(私の力量では原因が特定できませんでした)エラーの内容は、後ろから5行目の「fm.」の後の「Worksheets 」に対して「コンパイルエラー プロパティの使い方が不正です」というメッセージが出るものです。
いくつかの問題点があります
fm As Workbookはワークブックを示す変数宣言でオブジェクトになります
オブジェクト変数にオブジェクトを代入する場合
Set 変数 = オブジェクト とする必要があります
また、
Dir(fPath & "¥集計マクロ.xlsm")
Dir関数は対象フルパスにオブジェクトが存在するか調べる関数で
存在する場合は、対象オブジェクト(一番右書いた)を文字列で返します
無い場合は""が返ります
Sub test()
MsgBox Dir("C:¥Users¥nm¥Desktop¥マクロテスト" & "\集計マクロ.xlsm")
End Sub
> "¥**_test.xlsx"
ワイルドカードアスタリスクは任意数の文字なので1つで良いと思います
>fPath = "C:¥Users¥nm¥Desktop¥マクロテスト¥"
最後に¥付けていますが
これは、実行時エラーが返る事は無いでしょうけれど
"C:¥Users¥nm¥Desktop¥マクロテスト¥¥集計マクロ.xlsm"
となりますので一応指摘しておきます
一応の意図は、こちらを参考にしてください
https://oshiete.goo.ne.jp/qa/4971363.html
No.1
- 回答日時:
集計マクロ.xlsmに集計マクロが登録されていて、
この集計マクロ.xlsmの末尾に*_test.xlsxのsheet1を貼り付ける
ということで良いでしょうか。
その前提でよいなら、以下のようにしてください。
Sub 集計マクロ()
Dim fPath As String, fName As String, wb As Workbook
fPath = "C:\Users\nm\Desktop\マクロテスト\"
fName = Dir(fPath & "\*_test.xlsx")
Do While fName <> ""
Set wb = Workbooks.Open(fPath & fName)
wb.Worksheets("sheet1").Copy _
After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
wb.Close SaveChanges:=False
fName = Dir()
Loop
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/11 13:29
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- Excel(エクセル) このコードに追記事項の仕方を教えて下さい。 以下のコード内容に出てくる。セルH3が空白の場合、エラー 4 2023/08/03 00:22
- Access(アクセス) エクセルのマクロについて教えてください。 2 2023/02/03 16:07
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) Excel VBA でデータ転記について 1 2023/03/07 19:11
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
牛、豚、鶏、どれか一つ食べられなくなるとしたら?
牛肉、豚肉、鶏肉のうち、どれか一種類をこの先一生食べられなくなるとしたらどれを我慢しますか?
-
【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
【お題】 ・急に朝起こしてきた母親に言われた一言とは?
-
UserForm1.Showでエラーになります。
工学
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAを一度起動するとずっと出て...
-
エクセル終了時の保存確認メッ...
-
別のパソコンでエクセルのマク...
-
VBA マクロ実行時エラー’1004Ra...
-
昨日まで動いていたエクセルの...
-
Excelが勝手にシート移動してし...
-
コピーしたファイルのマクロを...
-
アクセスでファイルを開いたと...
-
Excelマクロ ファイル名が変わ...
-
マクロを消すマクロは不可能?
-
エクセルで印刷する方法 エクセ...
-
エクセルマクロ実行中に別ファ...
-
EXCELでマクロを記録する際に、...
-
複数のpowerpointのファイルを...
-
個人用マクロブックのマクロを...
-
VB.NetでExcelファイルをAccess...
-
エクセルでファイルを表示した...
-
excelのマクロ実行でブロックさ...
-
ワードを開いた時にメッセージ...
-
マクロを作成し、拡張子 .xlsm ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAを一度起動するとずっと出て...
-
コピーしたファイルのマクロを...
-
エクセル終了時の保存確認メッ...
-
excelファイルに使われているVB...
-
昨日まで動いていたエクセルの...
-
VBA マクロ実行時エラー’1004Ra...
-
EXCEL マクロ クリップボードク...
-
マクロを消すマクロは不可能?
-
別のパソコンでエクセルのマク...
-
Excelが勝手にシート移動してし...
-
アクセスでファイルを開いたと...
-
エクセルファイルを自身のファ...
-
外部データを取り込むマクロ
-
Excelマクロ ファイル名が変わ...
-
エクセルマクロ実行中に別ファ...
-
エクセル2013vbaで、見えない名...
-
【マクロ】エラーが発生⇒実行時...
-
サクラエディタのマクロ設定を...
-
EXCELマクロコードを、それを含...
-
エクセルマクロを有効にしない...
おすすめ情報