E:\01 65-66まで繰下げと従業員\01-2022-61にあるファイル名2022-61
E:\01 65-66まで繰下げと従業員\01-2023-62にあるファイル名2023-62
E:\01 65-66まで繰下げと従業員\02-2024-63にあるファイル名2024-63
ファイル名2022-61のシート名202261のcells(58,4)
ファイル名2023-62のシート名202362のcells(54,4)
ファイル名2024-63のシート名202463のcells(55,4)
これら3個のファイルの各々のセル値を
c:users\toshihiro\Desktop\VBA100\616263にあるファイル名616263
に貼り付けたいです。具体的には
2022-61のシート名202261のcells(58,4)数値を616263のcells(2,1)に
2023-62のシート名202362のcells(54.4)数値を616263のcells(2.2)に
2024-63のシート名202463のcells(55,4)数値を616263のcells(2,3)に
それぞれ貼り付けるVBAコード次項に表記します。
結果
Sub CopyValuesToMaster()
Dim masterFile As Workbook
Dim dataFile1 As Workbook
Dim dataFile2 As Workbook
Dim dataFile3 As Workbook
Dim masterFilePath As String
Dim dataFilePath1 As String
Dim dataFilePath2 As String
Dim dataFilePath3 As String
masterFilePath = "C:\Users\toshihiro\Desktop\VBA100\616263.xlsx"
Set masterFile = Workbooks.Open(masterFilePath)
dataFilePath1 = "E:\01 65-66まで繰下げと従業員\01-2022-61\2022-61.xlsx"
Set dataFile1 = Workbooks.Open(dataFilePath1)
Set datasheet1 = dataFile1.Sheets("202261")
dataFilePath2 = "E:\01 65-66まで繰下げと従業員\01-2023-62\2023-62.xlsx"
Set dataFile2 = Workbooks.Open(dataFilePath2)
Set datasheet2 = dataFile2.Sheets("202362")
dataFilePath3 = "E:\01 65-66まで繰下げと従業員\02-2024-63\2024-63.xlsx"
Set dataFile3 = Workbooks.Open(dataFilePath3)
Set datasheet3 = dataFile3.Sheets("202463")
masterFile.Sheets("Sheet1").Cells(2, 1).Value = datasheet1.Cells(58, 4).Value
masterFile.Sheets("Sheet1").Cells(2, 2).Value = datasheet2.Cells(54, 4).Value
masterFile.Sheets("Sheet1").Cells(2, 3).Value = datasheet3.Cells(55, 4).Value
dataFile1.Close SaveChanges:=False
dataFile2.Close SaveChanges:=False
dataFile3.Close SaveChanges:=False
masterFile.Save
masterFile.Close
End Sub
と出来たのですが、赤✖400となりエラーなのです、修正箇所と
修正後の完成VBAコードをお教えください。
2022-61,2023-62,2024-63これらファイルは、外付けUSBメモリに保存されていて、616263ファイルはパソコンのデスクトップに保存されています。
どうかよろしくお願いいたします
No.1ベストアンサー
- 回答日時:
エラーの原因は、datasheet2をdataSheet2と誤ってスペルミスしているためです。
修正するには、以下のようにdataSheet2に変更する必要があります。Set dataFile2 = Workbooks.Open(dataFilePath2)
Set dataSheet2 = dataFile2.Sheets("202362")
修正後の完成VBAコードは以下のようになります。Sub CopyValuesToMaster()
Dim masterFile As Workbook
Dim dataFile1 As Workbook
Dim dataFile2 As Workbook
Dim dataFile3 As Workbook
Dim masterFilePath As String
Dim dataFilePath1 As String
Dim dataFilePath2 As String
Dim dataFilePath3 As String
Dim dataSheet1 As Worksheet
Dim dataSheet2 As Worksheet
Dim dataSheet3 As Worksheet
masterFilePath = "C:\Users\toshihiro\Desktop\VBA100\616263.xlsx"
Set masterFile = Workbooks.Open(masterFilePath)
dataFilePath1 = "E:\01 65-66まで繰下げと従業員\01-2022-61\2022-61.xlsx"
Set dataFile1 = Workbooks.Open(dataFilePath1)
Set dataSheet1 = dataFile1.Sheets("202261")
dataFilePath2 = "E:\01 65-66まで繰下げと従業員\01-2023-62\2023-62.xlsx"
Set dataFile2 = Workbooks.Open(dataFilePath2)
Set dataSheet2 = dataFile2.Sheets("202362")
dataFilePath3 = "E:\01 65-66まで繰下げと従業員\02-2024-63\2024-63.xlsx"
Set dataFile3 = Workbooks.Open(dataFilePath3)
Set dataSheet3 = dataFile3.Sheets("202463")
masterFile.Sheets("Sheet1").Cells(2, 1).Value = dataSheet1.Cells(58, 4).Value
masterFile.Sheets("Sheet1").Cells(2, 2).Value = dataSheet2.Cells(54, 4).Value
masterFile.Sheets("Sheet1").Cells(2, 3).Value = dataSheet3.Cells(55, 4).Value
dataFile1.Close SaveChanges:=False
dataFile2.Close SaveChanges:=False
dataFile3.Close SaveChanges:=False
masterFile.Save
masterFile.Close
End Sub
修正後はエラーが発生せず、正常に実行されるはずです。注意点としては、外付けUSBメモリに保存されているファイルを開いた場合、VBAが正常に動作しないことがあるため、パソコンのローカルドライブにファイルをコピーしてから実行することをお勧めします。また、パスが間違っている場合やファイル名が異なる場合も、エラーが発生することがあるため、確認してから実行してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Excel(エクセル) 【マクロ】【VBA】同じフォルダ内にあるエクセルのデータを転記したい【ブック1からブック2へ】 9 2023/08/10 07:51
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
別のシートから値を取得するとき
-
同じ作業を複数のシートに実行...
-
XL:BeforeDoubleClickが動かない
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
シートが保護されている状態で...
-
ブック名、シート名を他のモジ...
-
実行時エラー1004「Select メソ...
-
VBA 存在しないシートを選...
-
API関数ImmSetConversionStatus...
-
【ExcelVBA】全シートのセルの...
-
IFステートの中にWithステート...
-
マクロを使って、シート印刷完...
-
エクセル・マクロ シートの非...
-
Excelマクロのエラーを解決した...
-
ExcelのVBAのマクロで他のシー...
-
実行時エラー'1004': WorkSheet...
-
【VBA】特定の文字で改行(次の...
-
エクセルのシート名変更で重複...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
VBAで大量のファイルをシート名...
-
ユーザーフォームに入力したデ...
-
excelのマクロで該当処理できな...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
VBA 存在しないシートを選...
-
Excelマクロのエラーを解決した...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
シートが保護されている状態で...
-
実行時エラー1004「Select メソ...
-
【Excel VBA】Worksheets().Act...
-
ブック名、シート名を他のモジ...
-
エクセルのシート名変更で重複...
-
ExcelのVBAのマクロで他のシー...
-
Excel VBA 複数行を数の分だけ...
-
エクセルのマクロについて教え...
-
VBA 最終行まで数式をコピーする
おすすめ情報