
一つのフォルダーに50個のエクセルファイルがあります。
各ファイルにはAとBのシートがあります。
50個エクセルファイルのBのシートをCのシートの内容に一括で変更し、シート名はBのままにします。
VBAをはじめて使おうと試みています。
cシートは別のフォルダに保存しています。
下記のコードでいいでしょうか?
また保存するときはどうしたらいいのでしょうか?
VBAはどのエクセルファイルからコードを入力すればいいでしょうか?50個のファイルのうちの一つですか?
Sub ReplaceBSheetContentWithTemplateC()
' 必要な情報の設定
Dim FolderPath As String: FolderPath = "C:\YourFolderPath\"' あなたのフォルダのパスを変更してください
Dim TemplatePath As String: TemplatePath = "C:\YourTemplatePath\TemplateFile.xlsx"' テンプレートファイルのパスを変更してください
' 他の変数の定義
Dim FileName As String
Dim TemplateWb As Workbook
Dim TargetWb As Workbook
' テンプレートファイルを開く
Set TemplateWb = Workbooks.Open(TemplatePath)
' フォルダ内の最初のExcelファイルの名前を取得
FileName = Dir(FolderPath &"*.xls*")
' フォルダ内のすべてのExcelファイルをループで処理
Do While FileName <>""' ファイルを開く
Set TargetWb = Workbooks.Open(FolderPath &FileName)
' Bシートの内容をクリア
TargetWb.Sheets("B").Cells.Clear
' テンプレートのCシートの内容をBシートにコピー
TemplateWb.Sheets("C").Cells.Copy Destination:=TargetWb.Sheets("B").Cells
' ファイルを保存して閉じる
TargetWb.Close SaveChanges:=True
' 次のファイルの名前を取得
FileName = Dir
Loop
' テンプレートファイルを閉じる
TemplateWb.Close SaveChanges:=False
End Sub
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
Excelファイルのバックアップをとった上で、2,3のExcelファイルに対して実行して、問題がなければ、50個に対して行う。
バグのないプログラムを初めから作るのは難しい。
No.1
- 回答日時:
こんにちは
>下記のコードでいいでしょうか?
なさりたいことが正確にはわかりかねますが、ざっと見る限り、ご提示のコードで動作すると思います。(テストはしていません)
質問する前に、テスト用のデータを作成して実行してみれば、お望みの通りかどうかはわかるのではないでしょうか?
>また保存するときはどうしたらいいのでしょうか?
保存していますよ?
>' ファイルを保存して閉じる
>TargetWb.Close SaveChanges:=True
>VBAはどのエクセルファイルからコードを入力すればいいでしょうか?
実行用のブックを作成して、そこに記述しておくのが確実だと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) シート名をフォルダ名に変更 1 2021/12/01 15:59
- Visual Basic(VBA) 空のシートに関数を入れたい 2 2021/12/03 15:08
- Visual Basic(VBA) EXCEL VBA シート貼り付け 3 2021/11/15 12:33
- Visual Basic(VBA) サブフォルダ含むすべてのフォルダの Excel 検索 4 2021/12/13 09:33
- Visual Basic(VBA) EXCLE VBA シートクリックしたら該当シートコピー 1 2021/11/11 16:37
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) EXCEL VBA シート比較し〇×判定 1 2021/11/19 11:49
- Visual Basic(VBA) シート名でファイル検索する 2 2021/11/30 17:05
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) 転記先VBA 一致しているセルがコピーされない 5 2021/11/15 17:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel: ファイル名になぜ、[...
-
エクセルのファイル:「自分」が...
-
CSVファイルの特定行の削除
-
彼女の過去の恋愛に嫉妬してし...
-
VBA ファイル一覧を取得して全...
-
xlsファイルが開かない。
-
ファイルが移動してもリンクの...
-
エクセルの拡張子XLSのファイル...
-
複数のExcelファイルにある同名...
-
docxをmht形式で保存したファイ...
-
エクセル保存終了で一時ファイ...
-
vbsからのExcelマクロ呼び出し...
-
5000個のtiffファイルをpdfへ変...
-
File.delete()にてファイルを削...
-
thunderbirdで特定のメールだけ...
-
WINDOWS CMDからゴミ箱のファ...
-
C# リッチテキスト形式のファイ...
-
あるマクロを起動し、その際に...
-
VBでbasファイルのインポート、...
-
ノーツの添付ファイルの場所を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSVファイルの特定行の削除
-
彼女の過去の恋愛に嫉妬してし...
-
エクセルのファイル:「自分」が...
-
Excel: ファイル名になぜ、[...
-
ファイルが移動してもリンクの...
-
複数のExcelファイルにある同名...
-
iCloud for Windowsをアンイン...
-
EXCELVBAにて文字列にして「01...
-
[Unity]シーンファイルの中が消...
-
vbsからのExcelマクロ呼び出し...
-
5000個のtiffファイルをpdfへ変...
-
batでファイル名を変更したい(...
-
WINDOWS CMDからゴミ箱のファ...
-
VBA ファイル一覧を取得して全...
-
docxをmht形式で保存したファイ...
-
CSVファイルの暗号化
-
バインダーの作り方
-
FTPのgetとputの使いわけ。
-
フォルダ内の複数のファイルの...
-
自動で.xlsを閉じて指定フォル...
おすすめ情報