• ベストアンサー

エクセルで上書保存時に自動実行するマクロって?

Excel2000です。 ブックを開いた時に自動実行させるには、 Sub Auto_Open() で、作成すれば良いですが、 上書保存した際に、マクロを自動実行させるにはどうすれば良いのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • wkbqp833
  • ベストアンサー率36% (319/886)
回答No.1

Sub BeforeSave() で、保存する前に実行するマクロは出来ますが、保存した後にマクロを実行させるとなると、かなりの技術(VBAのコーディング、プログラミング)を必要とします 何か別の方法で解決できませんか?

SHI-UE
質問者

お礼

早速のご回答ありがとうございます。 そして、お礼が遅れてしまってすみません。 質問が言葉足らずで申し訳ないです。 保存する前に実行するマクロが知りたかったので、お答えはドンピシャです。 ただ、上手く動いてくれません。 例えば保存する前にセルC1に「=A1+B1」と言う式を入れてから 保存したい場合は、以下では駄目なのでしょうか? Sub BeforeSave() Cells(1, 3) = "=A1+B1" End Sub

SHI-UE
質問者

補足

質問者です。 回答へのお礼で再質問させて頂いてから、 BeforeSaveをキーに色々検索して解決できました。 Moduleに書き込むのではなく ThisWorkbookに以下の様に書き込んで上手く動きました。 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Cells(1, 3) = "=A1+B1" End Sub お騒がせしました、ありがとうございました。

関連するQ&A

  • エクセルで保存時に自動実行させるマクロ?

    エクセル97です。 起動時のAuto_Openや終了時のAuto_Closeのように、ファイルに保存をかけた時に自動的にマクロを実行させるにはどうしたらよいのでしょうか? フォームなどのマクロボタンで保存させるのではなく、通常に保存する場合です。 よろしくお願いします。

  • エクセル マクロで自動実行と終了について

    エクセルで作ったマクロを自動実行・自動保存・自動終了したいので、下記のような 記述のマクロをつくり、Windowsのタスク処理で1回/日実行させようとしています。 ----<ここから>------------------------------------ Sub Auto_Open()    :   :   Workbooks("ekuseru.xls").Close SaveChanges:=True End Sub ----<ここまで>------------------------------------ 質問その1  マクロを編集したい場合はどうすればいいのでしょう?  そのBookを開くとマクロが動き出し、保存した上で終了してしまいます。  マクロ無効でBookを開くと「ツール」⇒「マクロ」⇒「マクロ」で「編集」はクリッ  クできないようになってます。 質問その2  マクロが終了するとき、Bookは閉じますがエクセル自体は閉じません。  (意味通じますか?)  エクセル自体を閉じるにはマクロの記述はどうすればいいのでしょう? 以上、よろしくお願いします。

  • Excelマクロの自動実行で新規ブックを保存せずに表示したい

    以下のようなマクロを作成しました。 これを、TEST.xls として保存し、サーバに登録しました。 これをwebサイトで <a href="TEST.xls">実行する</a> のようにして ダウンロードし実行しても、strNEWBKNM が表示されずに終了してしまいます。 auto_open をやめて、ダウンロード後に「ツール」→「マクロ」でマクロを実行すると strNEWBKNM が表示された状態で終了するのですが、 auto_open でも strNEWBKNM が表示された状態で終わらせたいです。 (保存はしたくありません。あくまで表示で終わらせたいです) どのようにしたらよいか、お分かりになる方がいらっしゃいましたら 教えてください。よろしくお願いします。 Sub auto_open() Dim strWKBKNM As String 'このブック名 Dim strNEWBKNM As String '新しいブック名 strWKBKNM = ThisWorkbook.Name '*** このブックの名前を設定 Workbooks.Add '*** 新しいブックを追加 strNEWBKNM = ActiveWorkbook.Name '*** 新しいブックの名前を設定 Sheets("Sheet1").Activate Range("A1") = "aaaaaa" Workbooks(strNEWBKNM).Activate Workbooks(strWKBKNM).Close SaveChanges:=False End Sub

  • エクセル タスクスケジューラでマクロ自動実行

    お世話になります。 win7/エクセル2010使用です。 エクセルのThisWorkbook_openでマクロを実行するファイルAを作っています。 ※Auto_Openは記述していません。 ファイルAをタスクスケジューラに設定いたしました。 問題なくマクロが自動実行されて、目的は果たしています。 ただ、不思議な点があります。 このファイルAをダブルクリックして開いても マクロは自動実行されていきます。 このファイルAをコピーして、ファイルBを作り それをダブルクリックで開くと、 ファイルBは、ブックが開いた後に、「セキュリティーの警告」がされて マクロの自動実行ができません。 通常は、「セキュリティーの警告」を出さないために Auto_Openなどでコードを記述すると思うのですが、 なぜ、Auto_Openを記述していないファイルAが自動実行されるのかがわかりません。 タスクスケジューラの設定に何か関係はあるのでしょうか? よろしくお願いします。

  • どのファイルを開いた時もマクロを自動実行。エクセル

    新規にエクセルを開いたときだけマクロを自動実行するには、 personal.xlsで Sub auto_open() ' Macro1 Macro Range("A1").Value = "111" End Sub とすれば良いかと思いますが、 新規に開くどのファイルに対しても ファイル名ABC を含んでいる時だけ マクロを自動的に実行するにはどうしたらよいでしょうか? (ファイルを開いてから マクロボタンを押して マクロに”ファイル名を チェックしてA1にデータを書き込む”があるのはだめです。) (アドインでツールバーボタンを押すのもだめです。) エクセルは2003 OSはXPです。 説明不足でしたらすみません。

  • wordのマクロを自動実行する方法

    excelの場合は、下記でファイルを開くと同時にマクロが自動実行されます。  Sub Auto_Open()   自動実行したい処理  End Sub wordの場合は、上記では自動実行出来ません。 wordのマクロを自動実行する方法を教えて下さい。 宜しく、お願いします。

  • Excel マクロ ファイルオープン時 自動実行 

    いつもありがとうございます。初心者につき、わかりにくい文章かもしれませんが、宜しくお願い致します。 Excel2003で改ページを自動で行うマクロをこちらの過去の質問を参考にしながら作成しました。 勤め先の同僚にも配布しようと思い、どうせならマクロ実行が簡単なようにと、ユーザー定義のツールバー作成のマクロも作成。ここまでは無事に出来たのでが・・・ さらにファイルを開いた時に自動でツールバーが作成マクロを実行するように Sub Auto_Open()を用いて無事に成功、しかし一旦終了して再度このファイルを開くと 実行時エラー ’5’: プロシージャの呼び出し、または引数が不正です。 というエラーが出てしまいます。一回目に開いた時にSub Auto_Open()によって作成したツールバー作成のマクロを再度実行しようとするのが原因だと思うのですが、これを回避する方法があるのでしょうか? ちなみにエラーのダイヤログの終了ボタンを押せば、他のマクロは問題なく作動しますし、 本来の目的は別ファイルの改ページを、自動に行うためのマクロの実行をツールバーにて簡単に行うためのもので、このエラーが出たからといって何ら支障は無く、他のファイルからこの改ページのマクロを実行してもエラーは出ず、本来の目的は達成しおり問題は無いのですが、気分的にスッキリしません。何卒宜しくお願い致します。 下記をご参照ください。(実際は改頁マクロは複数あり) Sub A改ページ() Dim PB As HPageBreak Dim idx As Long Const tCol As String = "A" '改頁判断する列 With ActiveSheet For idx = 3 To .Cells(65536, tCol).End(xlUp).Row If .Cells(idx, tCol) <> .Cells(idx - 1, tCol) Then ActiveSheet.HPageBreaks.Add Before:=.Cells(idx, tCol) End If Next idx End With End Sub Sub ツールバー作成() Dim myBar As CommandBar, myButton As CommandBarButton Set myBar = CommandBars.Add myBar.Name = "改頁マクロ" Set myButton = myBar.Controls.Add myButton.OnAction = "A改ページ" myButton.FaceId = 80 myBar.Visible = True End Sub Sub Auto_Open() ツールバー作成 End Sub

  • エクセルのマクロをファイル名で自動実行させたい

    毎度お世話になっております。 エクセル2010で不慣れなマクロを作ったのですが、これを特定の名前のファイル名のBookに一括でコピー?、実行させるような方法はないでしょうか? ファイルを開く時に、マクロが動くようにAuto_Openマクロでやっと動くようになったのですが、ファイル名が「製品名(スペース)〇〇〇」の〇〇〇の付いたエクセルBookを開くときに、このマクロが自動で動くようにする方法は無いのでしょうか? ファイル数が結構あるので、これが出来れば非常に助かるのでお知恵をお貸しくださいませ。

  • エクセルのブックを開いた時にマクロを自動定期に実行したいのですが。

    エクセル97でブックを開いたときに、自動的にマクロを実行させたいのですが、どのようにマクロを記述すればいいのか教えて頂けませんか。 sub autorun() sheets(2).select sheets(1).cells(2,2)=cells(5,5) end sub のように、シート2のある数値をシート1のセルに自動的に貼付したいのですが。 このマクロは自動的には実行されませんので、どうすれば自動的に実行するようにできるのかが知りたいのですが。 よろしくお願いします。

  • 『保存』のマクロを違う名前のファイルでも実行したい

    マクロ初心者です。 CSVファイルの数字の羅列をエクセル上に並べグラフにするマクロを作りました。 今度はそれをエクセルファイルとして保存したい。 見よう見まねで保存のマクロを作ってみましたが、 その際、このマクロを他のCSVファイルで実行しようとすると マクロを作ったファイル名に保存しようとします。 (例)Book1 で作ったマクロはBook2のファイルで同じマクロを実行するとBook1に保存しよう(上書き)とします。 これをその時開いて作業しているファイル名で自動的に保存させるには どうしたらいいのでしょうか? (例)Book1で作業してる時は保存名をBook1に、 Book2で作業しているときは保存名をBook2にしたい。 説明が下手で申し訳ありませんが、この様な事がマクロでできるのでしょうか?また、できるとすればどこをどのようにすればいいのでしょうか? 教えてください。よろしくお願いします。

専門家に質問してみよう