プロが教える店舗&オフィスのセキュリティ対策術

フォルダ内の全てのエクセルデータを一つにまとめたいのですが、
下記を実行すると、添付ファイルのメッセージが出て先に進みません。
調べましたがよくわかりませんので、ご教示いただけませんでしょうか。
画像の最上部の『'プログラム0|変数設定の指定Option Explicit』が欄外に
はみだしていて直せません、こちらが原因でしょうか。
-------------------------------------------------------
'プログラム1|プログラム開始
Sub GetExcelDataInFolder()

'プログラム2|シート設定
Dim ws1 As Worksheet
Set ws1 = ThisWorkbook.Worksheets("Sheet1")

'プログラム3|FileSystemObjectの設定
Dim fs As FileSystemObject
Set fs = New FileSystemObject

'プログラム4|対象フォルダを取得
Dim myfolder As Folder
Set myfolder = fs.GetFolder(ThisWorkbook.Path)

'プログラム5|対象フォルダ内の全ファイルを処理
Dim myfile As File
For Each myfile In myfolder.Files

'プログラム6|拡張子が「xlsx」のファイルのみを処理
If fs.GetExtensionName(myfile) = "xlsx" Then

'プログラム7|フォルダ内のエクセルを開いてシートを設定
Dim wb As Workbook
Set wb = Workbooks.Open(Filename:=myfile)
Dim ws2 As Worksheet
Set ws2 = wb.Worksheets(1)

'プログラム8|開いたエクセルの最終行を取得
Dim cmax As Long
cmax = ws2.Range("A65536").End(xlUp).Row
Debug.Print myfile.Name & "のcmax=" & cmax

'プログラム9|開いたエクセルのデータを転記
Dim i As Long
For i = 2 To cmax
Dim cmax1 As Long
cmax1 = ws1.Range("A65536").End(xlUp).Row
ws1.Range("A" & cmax1 + 1 & ":E" & cmax1 + 1).Value = ws2.Range("A" & i & ":E" & i).Value
Next

'プログラム10|エクセルを閉じる
wb.Close

'プログラム11|オブジェクト解放
Set ws2 = Nothing
Set wb = Nothing
End If
Next

'プログラム12|エクセルを保存
ThisWorkbook.Save

'プログラム13|オブジェクト解放
Set myfolder = Nothing
Set fs = Nothing

'プログラム14|プログラム終了

「VBAが止まります。」の質問画像

質問者からの補足コメント

  • うーん・・・

    めぐみん_様
    ご連絡とお調べいただき、ありがとうございます。
    失念しておりました。
    『>'プログラム3|FileSystemObjectの設定、これを使用する上で参照設定と言う記載があったと思いますが、漏れてるのかな?』ですが今一度確認しましたが、Microsoft Scripting Runtimeの設定方法がわかりません。おわかりでしたら教えていただけませんでしょうか。
    よろしくお願いします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2022/09/02 16:08

A 回答 (2件)

「Option Explicit」は欄外(というかほぼ一番最初)にあるのが通常の位置です。


エラーの内容は「ユーザー定義型・・・」
と出るのは、
As File??????(FileSystemObjectかな?読み取れません)
という使い方ができないのです。
通常は
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
のように、Setを使用します。
ご参考に
VBA FileSystemObject ファイル操作の基礎
https://www.tipsfound.com/vba/18001
    • good
    • 1
この回答へのお礼

Zincer様
こんばんは。
いつもありがとうございます。
勉強になりました。
週明けに確認してみます。

お礼日時:2022/09/02 19:52

多分



>'プログラム3|FileSystemObjectの設定

これを使用する上で参照設定と言う記載があったと思いますが、漏れてるのかな?
まぁ参照設定をした方が扱いやすいかもですけど。
この回答への補足あり
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!