アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルに複数のファイルをドラッグ&ドロップしてファイルを開き、一つのファイル(ブック)にまとめたい場合、どのようなマクロを組めばいいのでしょうか?
できれば、そのまとめて一つにしたファイルを保存するとき、ファイルにマクロが含まれないようにできればよいのですが。

A 回答 (3件)

再びご参考まで。



下記のマクロだけを記述したブックを Combine.xls という名前で適当な場所に
保存しておきます。

操作は
1.まずこのブックを開いておきます。
2.エクスプローラから任意のファイルをこの中にドラッグして開きます。
3.このブック(Combine.xls)を表示してマクロを実行します。
 ・実行前にセルA1に文字列を入力しておくと、それが作成されたブックの名前に
  なります。
 ・セルA1が空白のまま実行すると、ファイル名は"Toriaezu.xls"になります。

Sub BooksCombine()
Dim i As Long, j As Long
Dim FName As String, myBook As String, WB() As String
Application.ScreenUpdating = False
FName = Range("A1").Value
If FName = "" Then FName = "Toriaezu"
Workbooks.Add
myBook = ActiveWorkbook.Name
ReDim WB(1 To Windows.Count) As String
Do Until i = Windows.Count
i = i + 1
Workbooks(i).Activate
If Workbooks(i).Name <> myBook And _
Workbooks(i).Name <> "Combine.xls" Then
j = j + 1
WB(j) = Workbooks(i).Name
End If
Loop
For j = 1 To Windows.Count
On Error GoTo Fin
Workbooks(WB(j)).Activate
ActiveWorkbook.Sheets.Select
Sheets(1).Activate
Sheets.Copy before:=Workbooks(myBook).Sheets(1)
Workbooks(WB(j)).Activate
Application.DisplayAlerts = False
ActiveWorkbook.Close
Next j
Fin:
Workbooks(myBook).Activate
Worksheets("Sheet1").Delete
ActiveWorkbook.SaveAs Filename:="C:\_Anns\Zone_2\" & FName, _
FileFormat:=xlNormal
ActiveWorkbook.Close
Range("A1").ClearContents
Application.ScreenUpdating = True
End Sub
    • good
    • 1
この回答へのお礼

ありがとうございます。できました。
非力なので自分の力だけではどうにも及ばないので大変たすかります。
貴重な時間を裂いていただいてありがとうございました。
また機会がありましたらよろしくお願いいたします。

お礼日時:2004/09/09 20:49

とりあえずのマクロです。


処理手順はご要望と少し違い、ひとつのファイルにまとめたい複数のブックを
専用フォルダに入れて処理します。

新規ブックを開いて、標準モジュールに以下を編集してコピペします。
Sub Test()
Dim FPath1 As String, FPath2 As String
Dim FName As String, myBook As String
Application.ScreenUpdating = False
FPath1 = "C:\_Anns\Zone_3\" '←専用フォルダ(実際のフルパスに変更)
FPath2 = "C:\_Anns\Zone_1\" '←まとめたブックを保存する実際のパスに
Workbooks.Add
myBook = ActiveWorkbook.Name
FName = Dir$(FPath1 & "*.xls")
Do While FName <> ""
Workbooks.Open Filename:=FPath1 & FName
ActiveWorkbook.Sheets.Select
Sheets(1).Activate
Sheets.Copy After:=Workbooks(myBook).Sheets(Sheets.Count)
Workbooks(FName).Activate
Application.DisplayAlerts = False
ActiveWorkbook.Close
FName = Dir$
Loop
ActiveWorkbook.SaveAs Filename:=FPath2 & "Renketsu.xls", FileFormat:=xlNormal
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

実行して処理が終ったら、まとめたブックの保存用として指定したフォルダを
開くと、"Renketsu.xls" というファイルがありますので、内容を確認してみて
ください。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。大変参考になります。
ただ、できればたくさんのフォルダ中のファイルをとっかえひっかえ開く場合が多いものですから、フォルダを指定するよりドラック&ドロップのほうが都合がよいのです。もう少し考えてみます。

お礼日時:2004/09/09 03:47

「マクロ」という単語が出てきているのは


ファイルもシートもたくさんあってコピー元のシートタブを右クリック→移動又はコピーで纏めていくのが面倒だからですか?
マクロは判らないですが、ただ単に纏めるだけでしたら上記の方法でもできますよ
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!