
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
以下のようにしてください。
詳細条件が不明なので、以下のような仕様で作成しています。
1.フォルダの中のファイルは、拡張子が.xlsmのファイルを対象にする。
2.対象となるファイルに複数のシートがある場合、最も左側のシートの
B12のセルを対象とする。
3.値の格納先は、マクロ実行時に表示されているシートとする。
(マクロのあるファイルのシートに格納します)
Public Sub B12集計()
Dim FldrPicker As FileDialog
Dim fldPath As String
Dim fname As String
Dim ws As Worksheet
Dim wrow As Long: wrow = 1
Dim wb As Workbook
Set ws = ActiveSheet
'フォルダ選択ダイアログを表示
Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker)
With FldrPicker
.Title = "フォルダを選択してください。"
.AllowMultiSelect = False
If .Show <> -1 Then Exit Sub
fldPath = .SelectedItems(1) & "\"
End With
Set ws = ActiveSheet
fname = Dir(fldPath & "*.xlsx")
Do While (fname <> "")
Set wb = Workbooks.Open(fldPath & fname)
ws.Cells(wrow, 1).Value = wb.Worksheets(1).Range("B12").Value
wb.Close (False)
wrow = wrow + 1
fname = Dir()
Loop
MsgBox ("完了")
End Sub
No.2
- 回答日時:
すみません。
生成AIの回答をそのままコピペしたものです。
あと、マクロ実行のEXCELファイルは「~.xlsx」ではなくて「~.xlsm」なので、コードの「Active.xlsx」の部分は「Active.xlsm」に読み替えます。
ただ、テスト実行してみたところ、各々のB12セルの値を、1ファイルから10行分を転記してしまっています。
変数の加算がしくじっているようです。
生成AIでご自分でも条件設定してみると自動でコードを作成してくれるので、試してみてください。
No.1
- 回答日時:
Excel VBAを使用して、同じフォルダにある複数のExcelファイル(01.xls,02.xls,03.xls,04.xls,05.xls,06.xls,07.xls,08.xls,09.xls,10.xls)の各sheet1のB12セルの値をActive.xlsxのSheet1のセルのA1~A10に順次、転記する方法を以下に示します。
Sub CopyData()
Dim myPath As String, myFile As String, myExtension As String
Dim FldrPicker As FileDialog
Dim x As Workbook, y As Workbook
Dim ws As Worksheet
Dim i As Integer, j As Integer
'フォルダ選択ダイアログを表示
Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker)
With FldrPicker
.Title = "フォルダを選択してください。"
.AllowMultiSelect = False
If .Show <> -1 Then Exit Sub
myPath = .SelectedItems(1) & "\"
End With
'Active.xlsxを開く
Set y = Workbooks.Open(myPath & "Active.xlsx")
'各Excelファイルを開いてデータをコピーする
myExtension = "*.xls*"
myFile = Dir(myPath & myExtension)
Do While myFile <> ""
Set x = Workbooks.Open(myPath & myFile)
For Each ws In x.Worksheets
For i = 1 To 10
j = j + 1
y.Sheets(1).Cells(j, 1) = ws.Range("B12").Value
Next i
Next ws
x.Close False
myFile = Dir
Loop
'Active.xlsxを保存して閉じる
y.Save
y.Close
MsgBox "完了しました。"
End Sub
上記のコードをExcel VBAエディタに貼り付け、実行することで、同じフォルダにある複数のExcelファイルの各sheet1のB12セルの値をActive.xlsxのSheet1のセルのA1~A10に順次、転記することができます。フォルダ選択ダイアログが表示されるので、対象のフォルダを選択してください。また、Active.xlsxは事前に作成しておく必要があります。
(by 生成AI)
この回答へのお礼
お礼日時:2023/12/02 23:01
ご回答ありがとうございます。
コードを実行した結果、実行時エラー 1004
アプリケーション定義またはオブジェクト定義エラーとなりました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
VBA 最新のフォルダ取得
-
デスクトップの画像をhtmlに表...
-
API関数(DLL)の呼び出しにお...
-
バッチファイル フォルダを...
-
VBS サブフォルダの再帰処理に...
-
フォルダを開いて、閉じるのプ...
-
フォルダにリンクを貼りたい
-
Downloaded Program Filesはど...
-
ディレクトリ名変更してコピー...
-
ツリービューを使って、エクス...
-
Let’s Encryptでwebroot設定な...
-
C ファイル出力で、フォルダが...
-
excelマクロ 冒頭3文字が一致す...
-
【コマンドプロンプト】名前順...
-
クラウドにあるフォルダを共有...
-
exclude xcopy 除外フォルダ指...
-
Excelで指定したフォルダに保存...
-
MinGWで正規表現(regex.h)がし...
-
ファイル名と同名のフォルダを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
VBA 最新のフォルダ取得
-
デスクトップの画像をhtmlに表...
-
ファイル名と同名のフォルダを...
-
会社のネットワーク上のファイ...
-
ExcelのVBAでフォルダ指定がで...
-
Excelで指定したフォルダに保存...
-
VBA フォルダの複数選択ができない
-
【マクロ】ファイル名の日付に...
-
VB.NRT FolderBrowserDialogを...
-
【マクロ】フォルダにファイル...
-
ThisWorkbookがあるフォルダ更...
-
ディレクトリ名変更してコピー...
-
(C#)フォルダを指定するダイ...
-
VB6で7-ZIPのAPIを使用した圧縮...
-
VBプロジェクトでのフォルダ構...
-
パス名に2バイト文字(マルチバ...
-
Debug フォルダは消していいの?
-
フォルダにリンクを貼りたい
-
フォルダAから1つのファイルだ...
おすすめ情報