![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
下記のマクロは教えて頂いたマクロです。
コピー先にマクロを設定しており、マクロを実行するとコピー元のブックが開き、コピー範囲を指定して、コピー元の指定範囲にコピペ出来、その後、不要となったコピー元のブックを削除できます。
しかし、コピペまでは上手く実行出来ましたが、
不要ブックを削除できませんでした。
解決方法を教えてください。
Sub Macro1()
On Error Resume Next
Dim folderPath As String
Dim fileName As String
folderPath = ThisWorkbook.Path & "\"
fileName = Dir(folderPath & "*(提出用).xlsx")
If fileName <> "" Then
Workbooks.Open folderPath & fileName
Else
MsgBox "コピー元ファイルがありません", , "確認"
Exit Sub
End If
Dim Wb1 As Workbook, Wb2 As Workbook
Set Wb1 = Workbooks(1) 'このブック
Set Wb2 = Workbooks(2) '別ブック
'セルの値を取得する
Application.DisplayAlerts = False
Application.EnableEvents = False
Wb2.Worksheets("提出シート").Range("B1:H47").Copy
Wb1.Worksheets("受付").Range("B1:H47").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Application.CutCopyMode = False
With Wb2
If .Name Like "#########-#*" Then
If MsgBox(.Name & " を削除します", _
vbCritical + vbOKCancel, "警告!") = vbOK Then
.Save
.ChangeFileAccess Mode:=xlReadOnly
Kill .FullName
.Close (False)
End If
End If
End With
Application.EnableEvents = True
Application.DisplayAlerts = True
End Sub
以上となります。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
試したけれど
コピー元のブックは削除されましたが・・・?
出来ないの?
関係ない事ですが
元の様にロジック分けしたいという事でしたので
個別に呼ぶ場合のエラー対策を入れて・・
モジュールレベル変数が分からないという事なので
新しい標準モジュールで試してください
注:他の処理から呼ぶ場合 Application.EnableEvents = True のタイミングを考慮してください
いずれにしても自身で行う事が大事です
’---ここから下全て
Dim Wb1 As Workbook
Dim Wb2 As Workbook
Sub Sample()
Call 提出シートを開く
Call 提出シートコピー範囲
Call 貼り付け
Call 電子提出削除
End Sub
Sub 提出シートを開く()
Dim folderPath As String
Dim fileName As String
folderPath = ThisWorkbook.Path & "\"
fileName = Dir(folderPath & "*(提出用).xlsx")
Do While fileName <> ""
Workbooks.Open (folderPath & fileName)
fileName = Dir()
Loop
End Sub
Sub 提出シートコピー範囲()
Dim ws As Worksheet
If Workbooks.Count > 1 Then
Set Wb2 = Workbooks(2) '別ブック
On Error Resume Next
Set ws = Wb2.Worksheets("提出シート")
If Err.Number <> 0 Then
MsgBox "コピー元ブックの提出シートが見つかりません"
On Error GoTo 0
Wb2.Close False
End
End If
'セルの値を取得する
ws.Range("B1:H47").Copy
Else
MsgBox "コピー元ブックが見つかりません": End
End If
End Sub
Sub 貼り付け()
Dim ws1 As Worksheet
Set Wb1 = Workbooks(1) 'このブック
On Error Resume Next
Set ws1 = Wb1.Worksheets("受付")
If Err.Number <> 0 Then
MsgBox "コピー先ブックの受付シートが見つかりません"
Application.CutCopyMode = False
On Error GoTo 0
If Not Wb2 Is Nothing Then Wb2.Close False
End
End If
Application.DisplayAlerts = False
Application.EnableEvents = False
ws1.Range("B1:H47").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Application.CutCopyMode = False
Application.EnableEvents = True
Application.DisplayAlerts = True
End Sub
Sub 電子提出削除()
Dim wb As Workbook
For Each wb In Workbooks
With wb
If .Name Like "#########-#*" Then
If MsgBox(.Name & " を削除します", _
vbCritical + vbOKCancel, "警告!") = vbOK Then
.Save
.ChangeFileAccess Mode:=xlReadOnly
Kill .FullName
.Close (False)
Exit For
End If
End If
End With
Next
End Sub
No.2
- 回答日時:
こんにちは
読み取り専用に変えて、ファイルを開いたまま削除しようとしているようですが、普通にクローズしてから削除すればできませんか?
もしも、ファイル本体がアクセス権設定等で削除不可になっている場合は、そこを変えない限り削除はできませんけれど・・・
コード内で警告等を止めてしまっていますけれど、エラーの際にどのような警告が出るのか(出ないのか)、エラーメッセージの内容はどうなっているかをよく読んで、それに従って対処すれば良いはずです。
質問者様は「できる/できない」だけで判断しているようですが、実際にはいろいろと情報があるはずなので、それらを活用してください。
(これらの情報に関して何の記載もないので、回答者には「できない」という事象しかわかりません)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロについて教えてください。 2 2024/06/14 16:38
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2024/06/13 13:39
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2024/06/18 09:20
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Excel(エクセル) VBA バックグラウンドで別ブックを開いてデータ転記 3 2024/04/04 14:24
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) 3つのマクロを連続実行の中で、1つ目のマクロ要件を満たさなかったら、マクロ2・3を実行しない為には 1 2023/10/15 13:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/06/01 14:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2024/03/26 18:09
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
エクセルのVBAコードについて教えてください。
Visual Basic(VBA)
-
WORD VBA プログラム修正をお願いします。
Visual Basic(VBA)
-
マクロの記録を使用したマクロの実行について
Visual Basic(VBA)
-
-
4
エクセルのVBAコードについて教えてください。
Visual Basic(VBA)
-
5
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
6
Excelのマクロについて教えてください。
Visual Basic(VBA)
-
7
Excel(M365) Vlookup/セル反転(VBA)について
Visual Basic(VBA)
-
8
VBAで質問があります
Visual Basic(VBA)
-
9
エクセルVBAについて
Visual Basic(VBA)
-
10
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
11
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
12
シフト表をエクセルで作るときに 例えばAさんの勤務が月、火、水で祝日は休み Bさんが木と金と出勤で
Excel(エクセル)
-
13
【ExcelVBA】名前を付けて保存→PDF保存をマクロで実行できますか?
Excel(エクセル)
-
14
Word VBA MSGBOX 内で降順表示
Visual Basic(VBA)
-
15
現在のブックを閉じないで、マクロ抜きの(現在のブックの)コピーを作成したい
Visual Basic(VBA)
-
16
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
17
VBA指定行削除
Visual Basic(VBA)
-
18
VBA一覧取得 再投稿
Visual Basic(VBA)
-
19
VBAコードについて教えてください。
Visual Basic(VBA)
-
20
エクセルVBAコードで教えて下さい!
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAが途中で止まります
-
VBA シートをコピーする際に Co...
-
ワイルドカード「*」を使うとう...
-
VBA 別ブックからコピペしたい...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBAで複数のブックを開かずに処...
-
ExcelVBA:すでに開かれている...
-
【ExcelVBA】インデックスが有...
-
Excelのマクロについて教えてく...
-
エクセルのVBAコードについて教...
-
Excelのマクロについて教えてく...
-
ADOで複数のBookから抽出
-
【マクロ】違うフォルダにある...
-
別ブックをダイアログボックス...
-
Excelのマクロコードについて教...
-
VBの処理結果をEXCELシ...
-
Excelのマクロについて教えてく...
-
Excelマクロ 該当する値の行番...
-
ACCESSVBA からExcelの他ブック...
-
【前回の続きです、ご教示くだ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
別ブックをダイアログボックス...
-
VBAで別ブックのシートを指定し...
-
Excelのマクロについて教えてく...
-
VBA 別ブックからコピペしたい...
-
Excelのマクロについて教えてく...
-
vbaでvbaProjectのパスワード解...
-
VBA コードを実行すると画面が...
-
【マクロ】アクティブセルにブ...
-
Excelのマクロについて教えてく...
-
VBAで別のブックにシートをコピ...
-
VBS Bookを閉じるコード
-
Excelのマクロについて教えてく...
-
【ExcelVBA】zip圧縮されたCSV...
-
【ExcelVBA】インデックスが有...
-
ACCESSVBA からExcelの他ブック...
-
vbaで他のブックに転記したい。...
-
【マクロ】違うフォルダにある...
おすすめ情報
削除したいファイルは、コピー元のファイルでワイルドカードを使用している「*(提出用).xlsx」になります。
よろしくお願いいたします。
回答ありがとうございます。
おっしゃる通り
少し自分で色々試してみます。
明日になりますが、又、連絡をさせて頂きます。
一日、教えて頂きまして、感謝感謝です。
Qchan1962さん
おはようございます。
昨日はありがとうございます。まず、お詫びをしなければなりません。
ファイルを削除出来ないとお伝えいたしましたが、色々作業をしている段階で、削除対象のファイル名が、変更になっており、削除出来ないようになってました、ファイル名を修正することで、上手く削除ができました。
今回、色々教えて頂いた中で、一連のマクロを採用させていただき、実行すると、全てが上手くできました。私の不注意でご迷惑をお掛けし、申し訳ありませんでした。
教えて頂きました、マクロを少し変更したマクロを設定しまして、実行するとエラーが表示されてしまします。
新しい質問をさせて頂きますので、助けて頂けると幸いです。
何時も、助けて頂きまして、感謝いたします。
ありがとうございます。