フォルダ内の全てのエクセルデータを一つにまとめたいのですが、
下記を実行すると、添付ファイルのメッセージが出て先に進みません。
調べましたがよくわかりませんので、ご教示いただけませんでしょうか。
画像の最上部の『'プログラム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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
あるプログラムのコマンドライ...
-
Excelに埋め込んだVBAのプログ...
-
VBAにてメール作成した際、一部...
-
「Outlookが他のプログラムによ...
-
C言語でのaccess violationに...
-
C言語で、文字をbmp形式の画像...
-
CreateObject関数について
-
方対数グラフを書く為の計算方...
-
C++でExcel操作
-
プログラムのループの周期を設...
-
PICマイコンのコピー(クローン...
-
VBAでユーザーフォームが自動的...
-
テキストボックスのエンターキ...
-
TMBMSRV.exeによるCPU使用率上昇
-
VB6から他のプログラムを強制終...
-
デスクトップのフォルダ名を取...
-
n88basicからwindows版Basicへ...
-
自動クエリとはどういうもので...
-
クリックするとページ内で説明...
-
3Dモデルにおける法線の計算に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで4096点以上のFFTの方法
-
あるプログラムのコマンドライ...
-
VBAにてメール作成した際、一部...
-
PICマイコンのコピー(クローン...
-
長距離・マラソンをやりながら...
-
Excelに埋め込んだVBAのプログ...
-
「Outlookが他のプログラムによ...
-
自動クエリとはどういうもので...
-
未使用の変数を一括検索する方法
-
読み込み中にアクセス違反が発...
-
VBAでユーザーフォームが自動的...
-
エクセルとワードをデスクトッ...
-
モジュール、アプリケーション...
-
テキストボックスのエンターキ...
-
画像を読み込むのと取り込むの...
-
Vba 実数および実数タイプの変...
-
インクリメント演算子のみを用...
-
main関数を先頭に置くデメリット
-
C言語でのaccess violationに...
-
Application.ScreenUpdatingが...
おすすめ情報
めぐみん_様
ご連絡とお調べいただき、ありがとうございます。
失念しておりました。
『>'プログラム3|FileSystemObjectの設定、これを使用する上で参照設定と言う記載があったと思いますが、漏れてるのかな?』ですが今一度確認しましたが、Microsoft Scripting Runtimeの設定方法がわかりません。おわかりでしたら教えていただけませんでしょうか。
よろしくお願いします。