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

シートコピーのマクロを実行した後で、コピー先のファイルを削除する方法を教えてください。
マクロ
Sub シートコピー一般()
Dim srcFolderPath As String
Dim srcFileName As String
Dim srcSheetName As String
Dim destWorkbook As Workbook
Dim destSheet As Worksheet
Dim srcWorkbook As Workbook
Dim srcSheet As Worksheet

' コピー元のフォルダパスとファイル名を指定
srcFolderPath = "\\nas-sp01\share\確認部\■意匠\戸建\戸建て電子申請関連\ひな形\フラット関係\他の帳票(設計検査調書)\"
srcFileName = "*.xlsx"

' コピー先の作業ブックとシートを指定
Set destWorkbook = ThisWorkbook
Set destSheet = destWorkbook.Sheets("マクロシート")

' コピー元のファイルを検索
srcFileName = Dir(srcFolderPath & srcFileName)
' コピー元のブックを開く
Set srcWorkbook = Workbooks.Open(srcFolderPath & srcFileName)
' コピー元のシートを取得(一番左のシート)
Set srcSheet = srcWorkbook.Sheets(1)
' コピー元のシート名を取得
srcSheetName = srcSheet.Name
' コピー元のシートをコピー先にコピー
srcSheet.Copy After:=destSheet
' コピー元のブックを閉じる
srcWorkbook.Close SaveChanges:=False
End Sub
このマクロを実行すると指定フォルダ内の指定ファイル「 "*.xlsx"」のシートが作業ブックのシートにコピーされます。
このマクロに追加して
作業ブックにシートがコピーされた後に、
指定フォルダ内の指定ファイル 「"*.xlsx"」を削除する方法を教えてください。
指定フォルダ内には最新のファイルのみを保存して、作業をしている為、
作業ブックにシートがコピーされれば、コピー先のファイルは不要となりますので、
詳しい方、よろしくお願いします。

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

  • うーん・・・

    回答ありがとうございました。
    大変失礼いたしました。
    コピー元です。
    ご指示の通りに
    ' コピー元のブックを閉じる
    srcWorkbook.Close SaveChanges:=False
    ' コピー元のブックを削除
    Kill srcFolderPath & srcFileName
    End Sub
    を設定しましたが
    コピー元のフォルダ内のファイル「 "*.xlsx"」
    が削除されておりません。
    解決方法をお願いいたします。
    よろしくお願いします。

      補足日時:2023/05/24 10:49
  • うーん・・・

    質問のマクロに追加が難しい場合は
    指定フォルダ内「"\\nas-sp01\share\確認部\■意匠\戸建\戸建て電子申請関連\ひな形\フラット関係\他の帳票(設計検査調書)\"」
    の「 "*.xlsx"」を削除できる新しいマクロでも構いません。
    仮にマクロ名は
    「ファイル削除」としてください。
    よろしくお願いします。

      補足日時:2023/05/24 11:37
  • うーん・・・

    何度も申し訳ありません。
    はい、エラーメッセージも出ませんでした。
    新しいマクロ
    Sub Macro1()
    Kill "*.xlsx"
    End Sub
    を作成して実行しましたが、ファイル削除は出来ませんでした。
    尚、ファイルを右クリックで削除は出来ます。
    解決方法をよろしくお願いします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2023/05/24 12:56

A 回答 (4件)

あれ?同じような質問を見たけれど・・・



srcSheet.Copy After:=destSheet
' コピー元のブックを閉じる
With srcWorkbook
.Save
.ChangeFileAccess Mode:=xlReadOnly
Kill .FullName
.Close (False)
End With
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
いつも助けて頂きましてありがとうございます。
全て上手く行きました。
感謝いたします。
中々解決できなかったので
質問を変更して質問したのですが
解決しましたので他の質問を削除させていただきます。

お礼日時:2023/05/24 14:24

エラーメッセージも出ないのですね。


私では難しそうなので、他の識者の方に回答いただけるといいのですが。
(この質問は閉めて新たに質問した方がいいかもしれません。)
    • good
    • 0
この回答へのお礼

色々ありがとうございました。
一旦、ベストアンサーにさせて頂きます。

お礼日時:2023/05/24 13:37

エラーメッセージも出ないのでしょうか?


テスト用ファイルを作って
Kill ”ファイル名(フルパス)”
だけでテストしてみてはいかがでしょう。
削除権限がないってことはないですよね。
この回答への補足あり
    • good
    • 0

コピー先じゃなくてコピー元ですよね。



Kill srcFolderPath & srcFileName

で削除されますが、ゴミ箱にも入らず綺麗に消えますのご注意下さいね。
    • good
    • 0

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