
フォルダ内の全てのエクセルデータを一つにまとめたいのですが、
下記を実行すると、添付ファイルのメッセージが出て先に進みません。
調べましたがよくわかりませんので、ご教示いただけませんでしょうか。
画像の最上部の『'プログラム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|プログラム終了

No.1ベストアンサー
- 回答日時:
「Option Explicit」は欄外(というかほぼ一番最初)にあるのが通常の位置です。
エラーの内容は「ユーザー定義型・・・」
と出るのは、
As File??????(FileSystemObjectかな?読み取れません)
という使い方ができないのです。
通常は
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
のように、Setを使用します。
ご参考に
VBA FileSystemObject ファイル操作の基礎
https://www.tipsfound.com/vba/18001
No.2
- 回答日時:
多分
>'プログラム3|FileSystemObjectの設定
これを使用する上で参照設定と言う記載があったと思いますが、漏れてるのかな?
まぁ参照設定をした方が扱いやすいかもですけど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルの開き方
-
CASLIIのプログラム(並び替え...
-
あるプログラムのコマンドライ...
-
寿命
-
自動クエリとはどういうもので...
-
Excelで4096点以上のFFTの方法
-
VBAにてメール作成した際、一部...
-
VBAでユーザーフォームが自動的...
-
VB6から他のプログラムを強制終...
-
socketでの複数NICの扱い
-
COBOLでBLOCK CONTAINS句につい...
-
未使用の変数を一括検索する方法
-
n88basicからwindows版Basicへ...
-
OS入ってる機器のソフト・アプ...
-
eepromについて
-
VB.NETで、プログラム上から新...
-
TMBMSRV.exeによるCPU使用率上昇
-
excelのexe化について
-
プログラムから開く・・・DPP
-
べき乗
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイルの開き方
-
あるプログラムのコマンドライ...
-
OS入ってる機器のソフト・アプ...
-
Excelで4096点以上のFFTの方法
-
読み込み中にアクセス違反が発...
-
銃を発砲するならともかく、日...
-
VBAにてメール作成した際、一部...
-
ドロップダウンリストの文字を...
-
PICマイコンのコピー(クローン...
-
UWSCで指定のフォルダを開きたい。
-
XnViewにwebpを「いつも開く」...
-
Excelに埋め込んだVBAのプログ...
-
「Outlookが他のプログラムによ...
-
visual studio 2019を使ってい...
-
未使用の変数を一括検索する方法
-
powered byの表記について
-
VBAでユーザーフォームが自動的...
-
画像を読み込むのと取り込むの...
-
VC++コンソールアプリでウイン...
-
Google カレンダーの商用利用
おすすめ情報
めぐみん_様
ご連絡とお調べいただき、ありがとうございます。
失念しておりました。
『>'プログラム3|FileSystemObjectの設定、これを使用する上で参照設定と言う記載があったと思いますが、漏れてるのかな?』ですが今一度確認しましたが、Microsoft Scripting Runtimeの設定方法がわかりません。おわかりでしたら教えていただけませんでしょうか。
よろしくお願いします。