プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になっております
添付ファイルのように下記のコードを
実行するとメッセージがでて
エラーになります。
わかる方おしえてくれませんでしょうか

Sub efa()
Dim wSobj As Worksheet
Dim ss As String

For Each wSobj In Worksheets
If wSobj.Name <> "A001" Then
wSobj.Copy
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & wSobj.Name
ActiveWorkbook.Close
End If
Next

End Sub

「別々にワークブック保存」の質問画像

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

  • へこむわー

    オブジェクトが必要ですと
    メッセージがでます。

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/02/20 22:23
  • へこむわー

    なるほどです。
    わかりました。すでに同じ名前のBOOKがあると
    エラーになります。
    このエラーを回避するには

      補足日時:2022/02/20 22:26
  • うーん・・・

    Application.DisplayAlerts = False
    On Error Resume Next
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & ssobj.Name
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
    これで うまくいきました。が よいものなのでしょうか

      補足日時:2022/02/20 22:32
  • うーん・・・

    Application.DisplayAlerts = False
    On Error Resume Next
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & ssobj.Name
    ActiveWorkbook.Close
    Application.DisplayAlerts = True
    これで うまくいきました。が よいものなのでしょうか

    、マクロのファイルは、どこに保存してあるものでしょうか?
    デスクトップ上にフォルダ作成してその中にあります。

    No.2の回答に寄せられた補足コメントです。 補足日時:2022/02/20 22:39
教えて!goo グレード

A 回答 (5件)

No.1の者です。



同じファイルがあった場合に、どうされたいかによるかと思います。
この部分は、質問者さんがどうしたいかによって決める事かと思います。
例えば、同じファイル名があったら、ファイル名に日時を追加して仮に
保存しておくとか?

Sub efa()
Dim wSobj As Worksheet
For Each wSobj In Worksheets
If wSobj.Name <> "A001" Then
wSobj.Copy
On Error GoTo ErrHand
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & wSobj.Name
ActiveWorkbook.Close
On Error GoTo 0
End If
Next
Exit Sub
ErrHand:
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & wSobj.Name & Format(Now(), "ddsshhmmss")
Resume Next
End Sub
    • good
    • 0
この回答へのお礼

いつもありがとうございます。
このコードわかりやすいです。
ありがとうございました。

お礼日時:2022/02/22 10:06

あと気になったのは『拡張子』を明確に指示しないのはご本人様の拘りでしょうか?


それともWorkSheet名に記載されてる?
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2022/02/22 10:07

同じ名前『になる』Bookが存在するかはエラートラップよりDir関数で事前調査が普通な気もしますけどね。

    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2022/02/22 10:06

No.1の者です。



詳しい原因は不明ですが、
ThisWorkbook.Pathか、wSobj.Name のどちらかで問題が出て、エラーが
発生している事になるかと思います。

Msgbox ThisWorkbook.Path
Msgbox wSobj.Name

などで、どちらが原因かを切り分けて、それを対応するしかないかと。

因みに、マクロのファイルは、どこに保存してあるものでしょうか?
ネットワーク上とかですと、問題が出るかも知れません。
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2022/02/22 10:06

こんばんは。



推測になりますが、
wSobj.Copy ’の後に、下記を記載して、どう表示されるでしょうか?
Msgbox ThisWorkbook.Path & "\" & wSobj.Name

ファイル名の指定が、うまくできていないのでは?と思われますが。
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2022/02/22 10:06

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

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング