プロが教えるわが家の防犯対策術!

マクロは難しい・・・

https://oshiete.goo.ne.jp/qa/2598781.html
上記URLでフォルダ内の全ファイルを開くマクロがありましたので参考にしていたのですが別名で保存の段階で詰まってしまいました。貴重な休日がああ~~
現在仕事の引き継ぎでマクロ非対応のファイルをマクロ有効にしようとしているのですが多いと1フォルダに100個、全部で400以上あるため自動でできたらなあと考えています
やりたい作業は、

1.同じフォルダにあるファイルを開く
2.別名で保存でマクロ有効ブックとして保存(名前は開いたファイルのまま)
3.閉じる
4.次のファイルを開く
5.1~4をフォルダ内のファイル全てに適用するまで繰り返す

というものです
URL先のコードに別名で保存のコードを入れればいいんじゃん!やったぜひとりでできるもん!と思い追加したいマクロを記憶しながらコードを見て作ってみたのですが同じ名前で保存されたり end sub が必要などとエラーが出て上手くいきませんでした(´;ω;`)

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

  • すいません解決しました!
    個人用マクロブックを使っていたので”PERSONAL.XLSB”があるフォルダにコードが適用されていたようです
    マクロ有効ブックで保存したいファイルを上記フォルダに移動させたところモリモリ作成されていきました!
    仕事で使う際は万一がないようファイルにマクロを保存して慎重に扱おうと思います
    とても助かりました、ありがとうございます!!ヽ(`▽´)/

    No.2の回答に寄せられた補足コメントです。 補足日時:2016/03/05 00:07

A 回答 (2件)

失礼しました。

パスの指定が不完全でした。これでどうでしょう。

Sub sample()
Dim Fs, Fl, Fn, wb
Set Fs = CreateObject("Scripting.FileSystemObject").GetFolder(ThisWorkbook.Path).Files
For Each Fl In Fs
Fn = ThisWorkbook.Path & "\" & Fl.Name
If Right(Fn, 5) = ".xlsx" Then
Set wb = Workbooks.Open(Fn)
Fn = Left(Fn, Len(Fn) - 5) & ".xlsm"
Application.DisplayAlerts = False
wb.SaveAs Filename:=Fn, FileFormat:=xlOpenXMLWorkbookMacroEnabled
wb.Close
Application.DisplayAlerts = True
End If
Next
End Sub
この回答への補足あり
    • good
    • 1
この回答へのお礼

ありがとうございます
こちらも試したところやはり実行はできるのですがファイルは開かれた様子はなく作成もされませんでした
開こうとしているのがマクロを有効にしていないファイルであるためうまくいかないのかと考えマクロ有効のブックを同じフォルダに入れてみましたがこれも同じく開かれた様子はありませんでした

お礼日時:2016/03/04 23:55

こんな感じです。


同名のブックが存在していた場合、アラートなしで上書きしますので、ご注意ください。

Sub sample()
Dim Fs, Fl, Fn, wb
Set Fs = CreateObject("Scripting.FileSystemObject").GetFolder(ThisWorkbook.Path).Files
For Each Fl In Fs
Fn = Fl.Name
If Right(Fn, 5) = ".xlsx" Then
Set wb = Workbooks.Open(Fn)
Fn = Left(Fn, Len(Fn) - 5) & ".xlsm"
Application.DisplayAlerts = False
wb.SaveAs Filename:=Fn, FileFormat:=xlOpenXMLWorkbookMacroEnabled
wb.Close
Application.DisplayAlerts = True
End If
Next
End Sub
    • good
    • 1
この回答へのお礼

回答有り難うございます
新規フォルダに6つファイルを作成して試したところ実行はされるのですが新たなファイルが保存されませんでした
今作業中なのは2010、会社で使うのは2013ですがバージョンによって違うのでしょうか、調査中です

お礼日時:2016/03/04 22:51

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