
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/01/27 13:15
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/07/05 09:30
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/03/28 14:52
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 12:00
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
ワイルドカード「*」を使うとう...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAが途中で止まります
-
【マクロ】アクティブセルにブ...
-
Access開いているブックのセル...
-
VBAで別ブックのシートを指定し...
-
Excel2007VBAファイルの表示に...
-
フォルダー内の支店ごとのブッ...
-
【Excel VBA】書き込み先ブック...
-
【ExcelVBA】インデックスが有...
-
VBS Bookを閉じるコード
-
【ご教示ください】VBAの記述方...
-
VB.NETについて
-
Excel2010 VBA終了時に強制終了...
-
EXCEL VBA 単語置き換え につい...
-
VBA 実行時エラー 2147024893
-
エクセルVBAで読み取りパスワー...
-
ACCESSでExcelにデータ出力、高...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
VBA コードを実行すると画面が...
-
VBAで別のブックにシートをコピ...
-
VBAで別ブックのシートを指定し...
-
【Excel VBA】書き込み先ブック...
-
Excelマクロ 該当する値の行番...
-
【ExcelVBA】zip圧縮されたCSV...
-
[Excel]ADODBでNull変換されて...
-
【ExcelVBA】インデックスが有...
-
Excel2007VBAファイルの表示に...
-
VBAで複数のブックを開かずに処...
-
vbaで他のブックに転記したい。...
-
エクセルマクロで、他ブックか...
-
vbaでvbaProjectのパスワード解...
-
VBA 実行時エラー 2147024893
-
【マクロ】違うフォルダにある...
おすすめ情報
質問文に誤字があり申し訳ありません
顧客から送られてきた
削除したいファイルの一つのルールとして
ファイルの先頭に
必ず
〇〇〇〇〇〇_〇 半額の数字8桁半角のアンダーバー半角の数字一文字
の半角10桁の数字が付きます
その後に各物件ごとの名前が付きます
万が一
ワークブックと削除したいブック以外を開いている時に間違えて削除したいファイル以外も削除する事を防ぐ事は可能でしょうか?
よろしくお願いします
〇は6ケですが 実際8ケあります
よろしくお願いします
ご連絡ありがとうございます
そうですね メッセージボックスは良い方々ですね
顧客から送られてきたファイルは
仕事で使用している専用のソフトで送られてきて その時に先程記載しました
先頭に数字が自動的につく事になってます この数字でweb上で顧客とやり取りをする型です
上手く補足が出来てますでしょうか?
おはようございます
もう一つお願いがあります
昨日の回答で
メッセージボックスを表示される事をお勧めしていただけました
MsgBox("削除しますか?", vbYesNo + vbQuestion)
このコードをどこに入れたら良いかを考えていただけますか?
又 okをクリックすると
対象のブックはそのまま削除
キャンセルをクリックすると削除されない
アイコンは赤丸の✖️でお願いできますか?
何から何まで申し訳ありませんが
よろしくお願いします