
マクロ有効形式で保存されるタイミングで指定シートの指定セル値を削除できる方法を教えてください。
マクロ
Sub 電子提出()
Application.DisplayAlerts = False
On Error Resume Next
Worksheets(Array("記載方法")).Delete
Worksheets(Array("提出図書(参考)")).Delete
Worksheets(Array("消防の指摘一覧(参考資料)")).Delete
Worksheets(Array("Web申請手順(参考)")).Delete
Worksheets(Array("申請種別")).Delete
Application.Dialogs(xlDialogSaveAs).Show Arg1:="\" & Range("P1").Value, Arg2:=xlOpenXMLWorkbookMacroEnabled
Worksheets("提出シート").Activate
Range("B1", "H47").Select
myBook = ThisWorkbook.Path
ActiveWorkbook.SaveAs Filename:=myBook & "\" & Range("P1").Value & "(提出用).xlsx", FileFormat:=xlOpenXMLWorkbook
Application.Quit
With ThisWorkbook
.Saved = True
Application.DisplayAlerts = True
.Close False
End With
Sheets("提出シート").Shapes("新築FD").Visible = False '
Sheets("提出シート").Shapes("計変FD").Visible = False '
Sheets("提出シート").Shapes("増築FD").Visible = False '
Sheets("提出シート").Shapes("担当者").Visible = False '
End Sub
があります。
マクロを実行すると、不要シートを削除し、指定セル値がファイル名になり
マクロ有効形式「.xlsm」と一般の「.xlsx」の2つのファイルで保存されます。
マクロ有効形式「.xlsm」で保存されるタイミングで
指定シート名「提出シート」のセル「D3」「D4」「D7」の文字等の表示を削除できる方法を教えてください。
一般の「.xlsx」は現状のままでお願いいたします。
よろしくお願いいたします。
No.3
- 回答日時:
VBA実行時の選択範囲をRange変数に取得して実行(選択)後
範囲選択を戻す事で処理できると思います
Worksheets("提出シート").Activate
Dim rng As Range
Set rng = Selection.Cells
Range("B1", "H47").Select
myBook = ThisWorkbook.Path
ActiveWorkbook.SaveAs Filename:=myBook & "\" & Range("P1").Value & "(提出用).xlsx", FileFormat:=xlOpenXMLWorkbook
rng.Select
Sheets("提出シート").Range("D3,D4,D7").ClearContents
Application.Dialogs(xlDialogSaveAs).Show Arg1:="\" & Range("P1").Value, Arg2:=xlOpenXMLWorkbookMacroEnabled
No.2
- 回答日時:
こんにちは
>マクロ有効形式「.xlsm」で保存されるタイミングで
>指定シート名「提出シート」のセル「D3」「D4」「D7」の文字等の表示を削除できる方法を教えてください。
>一般の「.xlsx」は現状のままでお願いいたします。
現状.xlsmが先に出力されていますので順番を入れ替えて処理する必要があると思います
>Range("B1", "H47").Select
の目的は不明ですが・・・
該当部分コードです
・
・
Worksheets(Array("申請種別")).Delete
Worksheets("提出シート").Activate
Range("B1", "H47").Select
myBook = ThisWorkbook.Path
ActiveWorkbook.SaveAs Filename:=myBook & "\" & Range("P1").Value & "(提出用).xlsx", FileFormat:=xlOpenXMLWorkbook
Sheets("提出シート").Range("D3,D4,D7").ClearContents
Application.Dialogs(xlDialogSaveAs).Show Arg1:="\" & Range("P1").Value, Arg2:=xlOpenXMLWorkbookMacroEnabled
Application.Quit
・
・
No.1
- 回答日時:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI = True And Right(Me.FullName, 4) = "xlsm" Then 'マクロ有効形式で保存される場合
With Sheets("提出シート")
.Range("D3").ClearContents
.Range("D4").ClearContents
.Range("D7").ClearContents
End With
End If
End Sub
このコードは、マクロ有効形式で保存される前に自動的に実行されます。保存前のファイル名の拡張子が「xlsm」である場合に、指定のシート「提出シート」の指定セル「D3」「D4」「D7」の内容を削除します。一般の「.xlsx」で保存する場合には、このイベントは実行されません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/06/01 14:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
モテ期を経験した方いらっしゃいますか?
一生に一度はモテ期があるといいますが、みなさんどうですか? いまがそう! という方も、「思い返せばこの頃だったなぁ」という方も、よかったら教えて下さい。
-
AIツールの活用方法を教えて
みなさんは普段どのような場面でAIツール(ChatGPTなど)を活用していますか?
-
思い出すきっかけは 音楽?におい?景色?
記憶をふと思い出すきっかけは 音楽、におい、景色 どれですか?
-
VBAでファイル名を指定して保存するとき
Visual Basic(VBA)
-
excelマクロ、任意セルの値で名前を付けて任意のフォルダに保存
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで指定シート以外の選択
-
Worksheet_Changeの内容を標準...
-
excelのマクロで該当処理できな...
-
エクセルVBA Ifでシート名が合...
-
Excelマクロのエラーを解決した...
-
特定の文字を含むシートだけマ...
-
エクセルのシート名変更で重複...
-
EXCELVBAを使ってシートを一定...
-
シートが保護されている状態で...
-
【Excel VBA】ブックを開いた時...
-
VBA FIND next複数の条件
-
【VBA】指定した検索条件に一致...
-
ExcelVBA シート名を複数セルか...
-
別のシートから値を取得するとき
-
ExcelVBA:複数の特定のグラフ...
-
【Excel VBA】シート表示、非表...
-
エクセルのマクロでアクティブ...
-
【VBA】シート名に特定文字が入...
-
VBA 別ブック(シート)の同...
-
ユーザーフォームでのリストボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
Excelマクロのエラーを解決した...
-
【ExcelVBA】全シートのセルの...
-
別のシートから値を取得するとき
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
ブック名、シート名を他のモジ...
-
【VBA】シート名に特定文字が入...
-
シートが保護されている状態で...
-
VBAで指定シート以外の選択
-
エクセルのシート名変更で重複...
-
XL:BeforeDoubleClickが動かない
-
VBA 存在しないシートを選...
-
IFステートの中にWithステート...
-
実行時エラー'1004': WorkSheet...
-
Excel VBA リンク先をシート...
-
エクセルVBA Ifでシート名が合...
-
ExcelVBA:複数の特定のグラフ...
-
ExcelのVBAのマクロで他のシー...
-
実行時エラー1004「Select メソ...
おすすめ情報
回答ありがとうございます。
教えてください、
今回教えて頂けたコードは私のマクロコードとは別にマクロを作成して
例えば
Sub 電子2()
Application.Run "Macro1"(貴者のマクロ)
Application.Run " 電子提出"
End Sub
とするのでしょうか。このマクロを実行しても指定セル値が削除できませんでした。
貴者のコードを私のマクロコードのどの部分に追加したら良いかの方法を教えてください。
よろしくお願いいたします。
回答ありがとうございます。
私の希望通りに上手くできましたが、
マクロを実行するとマクロ有効ブックの保存先のダイナログ
が開き、保存すると、もう一度同じダイナログが開き
上書き保存のダイナログが表示されてしまいます。
2回目のダイナログを非表示に出来る方法があれば教えてください。
もう一つお願いがあります。
Range("B1", "H47").Select
ですが
ファイル形式「.xlsx」のファイルのみ有効にしたいのですが
現状はマクロ有効「.xlsm」でもRange("B1", "H47").Selectでの範囲指定がされております。
Range("B1", "H47").Selectの範囲指定は「.xlsx」ファイルを開き
Ctrl+Cを押して範囲指定をコピーするためのコードですので
「.xlsx」のファイルのみに必要なコードで
マクロ有効「.xlsm」では不要です。
何度も申し訳ありません。
以上の解決方法をお願い致します。
ありがとうございます。
Range("B1", "H47").Select
は解決いたしましたが
やはり、保存用のダイナログが2回開いてしまします。
申し訳ありません、解決方法を教えてください。
念のため、何回かに分けてコードをお送りいたします。
Sub 電子提出()
Application.DisplayAlerts = False
On Error Resume Next
Worksheets(Array("記載方法")).Delete
Worksheets(Array("提出図書(参考)")).Delete
Worksheets(Array("消防の指摘一覧(参考資料)")).Delete
Worksheets(Array("Web申請手順(参考)")).Delete
Worksheets(Array("申請種別")).Delete
Application.Dialogs(xlDialogSaveAs).Show Arg1:="\" & Range("P1").Value, Arg2:=xlOpenXMLWorkbookMacroEnabled
Worksheets("提出シート").Activate
Worksheets("提出シート").Activate
Dim rng As Range
Set rng = Selection.Cells
Range("B1", "H47").Select
myBook = ThisWorkbook.Path
ActiveWorkbook.SaveAs Filename:=myBook & "\" & Range("P1").Value & "(提出用).xlsx", FileFormat:=xlOpenXMLWorkbook
rng.Select
Sheets("提出シート").Range("D3,D4,D7").ClearContents
Application.Dialogs(xlDialogSaveAs).Show Arg1:="\" & Range("P1").Value, Arg2:=xlOpenXMLWorkbookMacroEnabled
Application.Quit
With ThisWorkbook
.Saved = True
Application.DisplayAlerts = True
.Close False
End With