電子書籍の厳選無料作品が豊富!

マクロ設定ブックのThisWorkbookに下記のコードを設定しております。
作業ブックをオープンしたタイミングで、「マクロ:提出シートコピー削除」が実行できますが、
この作業が完了した後、別ブック名「物件毎のファイル名.xlsm」
に保存後、違う作業に移行しますが、別ブックに保存した、ブックをオープンすると、又、「マクロ:提出シートコピー削除」が実行されてしまいます。
ThisWorkbookに設定したコードを一度だけ実行できる方法又は、最初のマクロ有効ブックのファイル名「総合引き受け(戸建て).xlsm」(ファイル名は固定です)の時だけ実行でき、ファイル名が変更後は、コードが実行されない方法があれば教えてください。
現状のコード
Private Sub Workbook_Open()
Dim alert As VbMsgBoxResult
alert = MsgBox("提出シートを貼り付けますか?", vbYesNo + vbQuestion, "貼り付け確認")
If alert <> vbYes Then
Exit Sub
End If
Call 提出シートコピー削除
End Sub

以上となります。
よろしくお願いいたします。

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

  • うーん・・・

    回答ありがとうございます。
    コードの先頭に
    If ThisWorkbook.Name = "総合引き受け(戸建て).xlsm" Then Exit Sub
    と設定しましたが、この場合、
    ファイル名が"総合引き受け(戸建て).xlsm"の時はコードが実行せず。
    ファイル名が"総合引き受け(戸建て).xlsm"以外の時はコードが実行してしまい、逆になってしまってます。
    解決方法を教えてください。
    宜しくお願い致します。

    No.1の回答に寄せられた補足コメントです。 補足日時:2024/07/04 14:13

A 回答 (2件)

If ThisWorkbook.Name = "総合引き受け(戸建て).xlsm" Then Exit Sub


これだと、
ファイル名が"総合引き受け(戸建て).xlsm"の時は終了する という動作になります。

If ThisWorkbook.Name <> "総合引き受け(戸建て).xlsm" Then Exit Sub
としてください。
ファイル名が"総合引き受け(戸建て).xlsm"でない時は終了する という動作になります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
上手くできました。

お礼日時:2024/07/04 16:03

こんにちは



>ファイル名が変更後は、コードが実行されない方法があれば教えてください。
質問文の通りに処理すればよいだけ。
最初にファイル名を調べて、実行するかどうかを決めるという処理の流れにすれば良い。
ファイル名は Thisworkbook.Name で取得できます。
この回答への補足あり
    • good
    • 0

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

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


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