エクセルの複数のファイルを1つのファイルにする。
同じ雛形内でいろいろ入力された複数のファイル(book)を1つのファイル(book)にしたいです。
現在の方法は
1.1月売上というファイルを開く。
2.2月売上というファイルを開く。
3.開いた2月売上のファイルの中の雛形部分を全行コピーします。
4.1月売上のファイルの最終行の下の行に貼り付けします。
5.2月売上というファイルを閉じます。
6.3月売上というファイルを開く
7.開いた3月売上のファイルの中の雛形部分を全行コピーします。
8.NO.4の作業後の最終行の下の行に貼り付けします。
9.3月売上というファイルを閉じます。
10.4月売上というファイルを開く。
11.開いた4月売上のファイルの中の雛形部分を全行コピーします。
12.NO.8の作業後の最終行の下の行に貼り付けします。
13.4月売上というファイルを閉じます。
14.5月売上というファイルを開く
15.開いた5月売上のファイルの中の雛形部分を全行コピーします。
16.NO.12の作業後の最終行の下の行に貼り付けします。
17.5月売上というファイルを閉じます。
18.名前をつけて保存で「1月売上」→「1月-5月売上」で保存
これで「1月-5月売上」のファイルを開けば
5ファイル分のデータがあり、あとはオートフイルタやら並び替えやら
編集で自由自在です。
ですが上記手順は非常に大変で、かつ2月売上を2回貼り付けたり
3月売上を忘れたりというリスクもあります。
上記例では5ファイルですが30ファイルもあったら凄い負担です。
1発で行う方法はありますでしょうか?
ちなみに最初から1ファイルに入力し続けてでの回避は出来ません。
システムから自動に分かれて吐き出される為です。
No.3
- 回答日時:
VBAを使うことで
「特定のフォルダにある複数のブックのすべてのシートを今開いているブックに取り込む」
ことが可能です。1月~先月まで取り込む。
この後で
(1ブックにすべての情報がありますから)
すべてのシートを集計シートにかき集める。
これもVBAでできます。
この2段階の作業で考えると仕組みも探すことができると思います。
No.2
- 回答日時:
こんな感じでいかがでしょうか?
マクロ実行ファイルを作成し、画像のような入力箇所とボタンを作成して以下のプログラムを実行すると
作業フォルダ内にある全ての.xlsファイルのデータを新規ファイルにコピーするマクロです。
作業フォルダを作成し、そこに必要なファイルを全て格納させて使用します。
Private Sub CommandButton1_Click()
Dim MyName As String
Dim MyPath As String
Dim NewBook As String
Dim RowNo As Integer
Application.ScreenUpdating = False
RowNo = 0
Workbooks.Add 'ファイルを新規作成
NewBook = ActiveWorkbook.Name
MyPath = Cells(2, 2).Value 'パスを設定
MyName = Dir(MyPath, vbDirectory)
Do While MyName <> "" '作業フォルダ内のファイルを検索
If MyName <> "." And MyName <> ".." And Right(MyName, 4) = ".xls" Then
RowNo = fCopy(MyPath, MyName, NewBook, RowNo)
End If
MyName = Dir
Loop
Workbooks(NewBook).SaveAs Filename:=MyPath & Cells(1, 2).Value
End Sub
Public Function fCopy(MyPath As String, myBook As String, NewBook As String, RowNo As Integer) As Integer
RowNo = RowNo + 1
Workbooks.Open MyPath & myBook, , True '読み取り専用で開く
With Workbooks(myBook).ActiveSheet '開いたファイルの処理
.Range(1 & ":" & ActiveSheet.UsedRange.Rows.Count).Copy '全ての行をコピー
End With
With Workbooks(NewBook).ActiveSheet '新規作成したファイルの処理
.Rows(RowNo).PasteSpecial '新規作成したファイルに貼り付け
End With
Application.CutCopyMode = False '切り取りモード解除
Workbooks(myBook).Close False '開いたファイルを閉じる
fCopy = ActiveSheet.UsedRange.Rows.Count '最終行番号を戻す
End Function
ご丁寧にありがとうございます。
私の能力ふそくでうまく行きません。
出来上がっても正しいかどうかチェックしなければならず
1ファイルづつ開いてつなげる方が面倒ですが安心でした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの特定行の削除
-
vbsからのExcelマクロ呼び出し...
-
Excel: ファイル名になぜ、[...
-
EXCELVBAにて文字列にして「01...
-
docxをmht形式で保存したファイ...
-
Excelファイルを比較し、差分箇...
-
OneDrive必要なものでしょうか
-
VBSでフォルダ内の最新のファイ...
-
CSVファイルの暗号化
-
ファイルが移動してもリンクの...
-
WINDOWS CMDからゴミ箱のファ...
-
batでファイル名を変更したい(...
-
VBAにおいて、ファイルの移...
-
C# リッチテキスト形式のファイ...
-
FTPのgetとputの使いわけ。
-
Googleドライブについて
-
エクセルで移動したシートを復...
-
共有エクセルファイルでのユー...
-
VBA ファイル一覧を取得して全...
-
エクセルの固定範囲にCSVを貼り...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
iCloud for Windowsをアンイン...
-
vbsからのExcelマクロ呼び出し...
-
CSVファイルの特定行の削除
-
EXCELVBAにて文字列にして「01...
-
OneDrive必要なものでしょうか
-
Excel: ファイル名になぜ、[...
-
ファイルが移動してもリンクの...
-
複数のExcelファイルにある同名...
-
VBAにおいて、ファイルの移...
-
彼女の過去の恋愛に嫉妬してし...
-
Googleドライブについて
-
WINDOWS CMDからゴミ箱のファ...
-
[Unity]シーンファイルの中が消...
-
エクセルの拡張子XLSのファイル...
-
batでファイル名を変更したい(...
-
Excelに貼り付けた画像を圧縮す...
-
エクセルのファイル:「自分」が...
-
5000個のtiffファイルをpdfへ変...
-
VBA ファイル一覧を取得して全...
-
HTMLのリンクで、EXCELをIEでは...
おすすめ情報