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

いつもVBAが書ける人を、凄いなぁと関心しています。またどなたか助けて頂きたいのですが、先日こちらも「教えてgoo」に掲載されていたマクロで、複数ブックのシートを一つのブックに集約する方法を学びました。今度はその集約されたシートを、各ブックへ戻すマクロを教えて頂きたいと思います。
集約するマクロは下記の内容でした。

Sub test()
Dim Fname As String
Dim Wbm As Workbook
Dim Wbs As Workbook

Application.ScreenUpdating = False

Set Wbs = ThisWorkbook
Fname = Dir(ThisWorkbook.Path & "\*.xls*")

Do While Fname <> ""
If Fname <> ThisWorkbook.Name Then
Workbooks.Open ThisWorkbook.Path & "\" & Fname
Set Wbm = ActiveWorkbook

Wbm.Worksheets("sheet1").Copy after:=Wbs.Worksheets(Wbs.Worksheets.Count)
ActiveSheet.Name = Left(Fname, InStr(Fname, ".") - 1)
Wbm.Close
End If
Fname = Dir()
Loop

Application.ScreenUpdating = True

End Sub

よろしくお願いいたします

質問者からの補足コメント

  • うーん・・・

    naktakさん、早速のアドバイス、ありがとうございます。頂いたものをコード表に張り付けたのですが、マクロの実行をするとエラー表示が出て意図したようにシートが移りませんでした。引き続きアドバイスをいただけたら・・と思います。よろしくお願いいたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2016/12/08 13:20
  • うーん・・・

    VBAに関して超ド素人でして、私が当初質問で貼り付けたVBAも、「教えてgoo」の過去の回答欄にのっていたものを、ただ添付して使いました。多少の指定シート名などの編集は行いましたが・・。
    「デバック実行」のこともなんのことかわからなかったですが、ネットで調べてやってみようと思います。できるかなぁ・・。
    もう一度希望の動作を書きます。他の複数ブックから希望のシート(同名)を別のブックへ集約することは、当初の質問時に記述したマクロでできました。集約された再に各シートは元のブック名に変更となっています。集約ブック内で複数シートの同時編集が終わった後、元のブックにそれぞれ戻したいというのが今回の相談です。各シート名に振られている名前と同名のブックを探して、その際左列に格納したいと思います。できれば、その際に元のシート名(各シート同一名”12月”など)に戻るとベストです。

    No.2の回答に寄せられた補足コメントです。 補足日時:2016/12/09 10:45

A 回答 (2件)

Public Sub SplitBookBySheets()


Application.ScreenUpdating = False
Application.DisplayAlerts = False

Dim wb As Workbook
Set wb = ThisWorkbook

Dim saveDirectory As String
saveDirectory = wb.Path

Dim ws As Worksheet
For Each ws In wb.Sheets
Dim fileName As String
fileName = ws.Name & ".xls"

Dim destWb As Workbook
Set destWb = Application.Workbooks.Add
ws.Copy before:=destWb.Sheets(1)
Call destWb.Worksheets(2).Delete
Call destWb.SaveAs(saveDirectory & "\" & fileName)
Call destWb.Close
Set destWb = Nothing
Next

Set wb = Nothing

Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
この回答への補足あり
    • good
    • 2

デバッグ実行して、どこでどんなエラーが出ているのか確認してください。

この回答への補足あり
    • good
    • 1
この回答へのお礼

デバックの実行がよくわからず、エラー確認ができませんでした。せっかくお教え頂いたのですが、もう一度質問質問をさせて頂きます。

お礼日時:2016/12/18 17:25

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