Excelのマクロについて教えてください。
マクロ有効テンプレート方式のブックがあります。
最初にこのブックを開き、次に、顧客から送られてきた一般のExcelブック(物件によってファイル名は不特定です)を開き
セル範囲を指定して、マクロ有効テンプレートに貼り付けます。
貼り付け後は、マクロ有効テンプレートのみで作業を行う為、コピー先の一般Excelブック
は不要になります。
下記のマクロ実行後に
コピー先のファイルを削除出来る方法を教えてください。
マクロ
Sub 貼り付け()
Application.DisplayAlerts = False
Worksheets("受付").Range("B1:H47").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Application.DisplayAlerts = True
Sheets("受付").Range("Q8").Copy
Sheets("受付").Range("F3").PasteSpecial xlPasteValues
Sheets("受付").Range("H60").Copy
Sheets("受付").Range("F24").PasteSpecial xlPasteValues
Sheets("受付").Range("Q9").Copy
Sheets("受付").Range("E12").PasteSpecial xlPasteValues
Sheets("受付").Range("Q10").Copy
Sheets("受付").Range("F12").PasteSpecial xlPasteValues
End Sub
以上です。詳しくコードを教えてください。
よろしくお願いします。
No.4ベストアンサー
- 回答日時:
>もう一つお願いがあります
1質問でお願いは1つまでよ・・・
>okをクリックすると
対象のブックはそのまま削除
キャンセルをクリックすると削除されない
アイコンは赤丸の✖️でお願いできますか?
実行していると言う事は対象があると言う事でしょうから
対象ブックが出て来るまで開いているブックを繰り返し探します
Sub test()
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.3
- 回答日時:
>上手く補足が出来てますでしょうか?
残念ながら・・・Copyしているブックのパスが欲しいのでどこかローカルに保存しているのかなと。。
誤動作のリスクはありますが
CreateObject("VBScript.RegExp")を使う必要もなさそうなので
#1の
If .Name <> ThisWorkbook.Name Then を
If .Name Like "########_#*" Then としてみてください
同様なブックが開かれていれば削除される可能性がありますがね
No.2
- 回答日時:
>削除する事を防ぐ事は可能でしょうか?
そうですよね
たとえ
>必ず〇〇〇〇〇〇_〇 半額の数字8桁半角のアンダーバー半角の数字一文字の半角10桁の数字が付きます
であっても間違って削除する可能性がありますね
なので
顧客から送られてきた一般のExcelブックの.Copy コードが無いと
パスが判らないのでKill出来ないですね
です
VBAで一般のExcelブックを開いてコピー(必要な処理を)して
閉じて削除する これは一連の処理にする必要があります
仮に残したい場合は 削除する処理を
MsgBox("削除しますか?", vbYesNo + vbQuestion)
見たいに分岐すれば良いと思います
一般のExcelブックはどのような扱いで開いてコピーしているのでしょう?
No.1
- 回答日時:
>コピー先のファイルを削除出来る方法を教えてください。
コピー元(顧客から送られてきた一般のExcelブック)じゃないの?
顧客から送られてきた一般のExcelブックの.Copy コードが無いと
パスが判らないのでKill出来ないですね
そもそも、添付ファイルとかでメールソフトを介してコピーしている場合、処理が複雑になりますよ
手作業でコピーしているのかな?
マクロ有効テンプレートと対象の一般のExcelブックしか開いていない状態で
一般のExcelブックを削除するなら出来るけど課題が残る処理になると思いますよ・・・・あとで面倒だと思いますので要件を追加してみては・・・
ちなみに
Sub test()
Dim bk As Workbook
For Each bk In Workbooks
With bk
If .Name <> ThisWorkbook.Name Then
.Save
.ChangeFileAccess Mode:=xlReadOnly
Kill .FullName
.Close (False)
Exit For
End If
End With
Next
End Sub
でThisWorkbook以外の開いている1ブックを削除できます
(元には戻りません)
https://oshiete.goo.ne.jp/qa/13520276.html
続きは?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
VBAで別のブックにシートをコピ...
-
VBA コードを実行すると画面が...
-
別ブックをダイアログボックス...
-
【ExcelVBA】インデックスが有...
-
エクセルマクロで、他ブックか...
-
別ブックの列同士の値が一致し...
-
VBSでExcelのオープン確認
-
ユーザーフォームの切り替えに...
-
VBAで別ブックのシートを指定し...
-
Excelブックがアクティブになっ...
-
【ご教示ください】VBAの記述方...
-
excel2000の終了
-
マクロVBA 1シートをまとめ...
-
エクセルVBAでテキストボックス...
-
ACCESSでExcelにデータ出力、高...
-
VBS Bookを閉じるコード
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
別ブックをダイアログボックス...
-
VBA 別ブックからコピペしたい...
-
【ExcelVBA】インデックスが有...
-
VBA コードを実行すると画面が...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBA シート名が一致した場合の...
-
VBA 実行時エラー 2147024893
-
VBAで別のブックにシートをコピ...
-
VBS Bookを閉じるコード
-
【マクロ】違うフォルダにある...
-
ユーザーフォームの切り替えに...
-
[Excel]ADODBでNull変換されて...
-
vbaで他のブックに転記したい。...
-
【Excel VBA】書き込み先ブック...
-
Excel2007VBAファイルの表示に...
-
vbaでvbaProjectのパスワード解...
おすすめ情報
質問文に誤字があり申し訳ありません
顧客から送られてきた
削除したいファイルの一つのルールとして
ファイルの先頭に
必ず
〇〇〇〇〇〇_〇 半額の数字8桁半角のアンダーバー半角の数字一文字
の半角10桁の数字が付きます
その後に各物件ごとの名前が付きます
万が一
ワークブックと削除したいブック以外を開いている時に間違えて削除したいファイル以外も削除する事を防ぐ事は可能でしょうか?
よろしくお願いします
〇は6ケですが 実際8ケあります
よろしくお願いします
ご連絡ありがとうございます
そうですね メッセージボックスは良い方々ですね
顧客から送られてきたファイルは
仕事で使用している専用のソフトで送られてきて その時に先程記載しました
先頭に数字が自動的につく事になってます この数字でweb上で顧客とやり取りをする型です
上手く補足が出来てますでしょうか?
おはようございます
もう一つお願いがあります
昨日の回答で
メッセージボックスを表示される事をお勧めしていただけました
MsgBox("削除しますか?", vbYesNo + vbQuestion)
このコードをどこに入れたら良いかを考えていただけますか?
又 okをクリックすると
対象のブックはそのまま削除
キャンセルをクリックすると削除されない
アイコンは赤丸の✖️でお願いできますか?
何から何まで申し訳ありませんが
よろしくお願いします