• ベストアンサー

エクセルを閉じる時にマクロを実行する

お世話になります。 エクセルのファイルを閉じる時にあるマクロを実行したいと思っています。 右上の×印をクリック、Alt+F4、Alt+F→X などエクセルを閉じようとしたときに自動的にマクロを動かすことが出来るでしょうか? マクロ自体は、あるシート全体をコピー→外のシートに形式を選択して貼り付け(値) というごく簡単なものです。 また参考までにエクセルファイルを開いたときにマクロを実行というものがあれば教えてください。 よろしくお願いします。

  • HGK
  • お礼率69% (138/199)

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

ThisWorkbook の Workbook_Open と Workbook_BeforeClose を使う Private Sub Workbook_Open()  MsgBox "開く" End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean)  MsgBox "閉じる" End Sub または標準モジュールに Auto_Open と Auto_Close を入れます。 Sub Auto_Open()  MsgBox "開く" End Sub Sub Auto_Close()  MsgBox "閉じる" End Sub

HGK
質問者

お礼

ありがとうございました。

関連するQ&A

  • Excelマクロで、多数のシートの値だけを元のファイルに上書きするようなマクロを教えていただきたいのですが。

    あまり詳しくないのですが、Excelマクロで、1つのファイルにある40くらいのシートの計算式等をすべて排除した値&図だけを元のファイルに上書きするようなマクロを教えていただきたいのですが。 マクロを使わないでの方法は、 (1)、シート選択 (2)、CTRL+A(すべて選択) (3)、CTRL+C(コピー) (4)、形式を選択して貼り付け (5)、値(選択値) これをそのファイルが持っているシート分の繰り返しです。 宜しくお願いします。  

  • EXCELで”+100"を実行するマクロ

    EXCELで、マクロを実行するたびに、そのセルに入っている数に100プラスされるマクロを作りたいのです。 意味がよく分からないかもしれませんが、 例えば、あるセルに"100"という数値が入っていて、 1回実行すれば100+100で"200"に、もう1度実行すると、200+100で"300"に。…という感じです。 私的に考えたのは、 別のセルに"そのセル+100"をする式を書き込み、 コピー&元のセルに値貼り付けをし、 式の入った別のセルをDELする… というのをマクロにしてみたのですが、 イマイチうまくないというか… よい方法があったら、アドバイスください。

  • エクセルマクロ

    入力したワークシートを 新しいブックにコピーして保存するマクロを作成しました。 ただ下記の様に保管すると、 数式もそのまま元のエクセルファイルの数式を参照してしまいます。 下記のマクロをあまり変更しないで、 値貼付け(もしくは値貼付けしながら、新しいブックへコピー) するにはどの様に変更するといいでしょうか? よろしくお願いします。 'Sub newfilesave() Sheets("Sheet1").Copy '名前を付け、ファイル形式も決めてデスクトップに日付を付けて保存する。。 'ActiveWorkbook.SaveAs _ ' Filename:="C:\Users\xxxxx\Desktop\" & Format(Now(), "yyyymmdd_hhmm"), _ ' FileFormat:=xlOpenXMLWorkbook 'End Sub

  • 複数のエクセルファイルに対してマクロを順次実行する方法

    エクセルのマクロについて教えていただきたいです。 以下のような状況なのですが、アドバイスいただけないでしょうか。 ・同一フォルダに100個以上の同じ形式のエクセルファイルがある(ファイル名に規則性はなし) ・各ファイルは2つのシートから成り、そのうちの「データ」というシートに対して処理を適用したい ・適用したい処理のマクロは作成済み なお、適用したい処理というのは、「データ」シートからある値以上のデータの平均を別のエクセルファイル(これは1つのファイル)に記入するという作業で、値を読み込むだけで書き込むことはありません。 このマクロをフォルダ内の全てのエクセルファイルに対して実行したいのですが、可能であれば各エクセルファイルを開かずにマクロを実行したいのです。(100個を越えるファイルを開いたり閉じたりする動作を避けたい) マクロはしっかりと勉強したわけではなく、ネットから情報を集めつつなんとか作っているレベルで、特にファイルの読み書きがよく理解できていません・・・分かりやすいサイトなどがあればそれも教えていただきたいと思っています。 自分でも上手く説明できていないのはわかりますので、もし必要な情報がありましたら付け加えさせていただきます。 分かる方がいらっしゃいましたらどうぞよろしくお願いいたします。

  • Excelマクロ実行不可で掃除してみたい

    Excel2000 罫線を除く全て貼り付けをマクロに記録しCtrl][Alt][v]のショートカットキーを使いたかったので、マクロの記述を他の(以前教わった)Auto_Open()のVBAにコピーししました。その日は使えたのですが、後日使えなくなりました。打つ手はありますか?   今度は既存のVBAに引っ越さないでやってみようと、VBAProject(PERSONAL.XLS)の各Moduleを解放し何もない状態で 再び[罫線を除く全て]を貼付けるマクロを記録しました。やはり実行できません。 症状としては  罫線で囲まれたセルを選択してコピーし 貼付け先を選択し ツールバーの[実行三角印]をクリックするとコピー元の点線アクティブが解除されてしまいます。 何かが悪さしている感じです。お掃除は出来ないでしょうか? Excelを削除してインストールし直さないとダメでしょうか?上書き再インストールでは直りませんでした。

  • エクセルのマクロであるフォルダ内にある全エクセルファイルのシート1!(

    エクセルのマクロであるフォルダ内にある全エクセルファイルのシート1!(A1:X365)の値を取得し、コピー元のエクセルファイル名のシートに貼付ける方法を教えて頂けないでしょうか?できればコピー元のエクセルファイルは開かずに実行させたいです。エクセルは2003を使っています。

  • マクロ実行ボタンを自動削除したい

    エクセル2007をしています マクロで次のような設定をしました 取り込んだデーターを別のエクセルファイルへコピー 数式が入っているので全体を値コピー マクロボタンを削除 終了 ですがマクロボタンが消えません 元ファイルには必要ですがコピーしたものには必要ありません マクロボタン削除を実行させるためにはどうすればいいですか

  • エクセルマクロ コピー元と貼り付け先を指定してコピー&ペーストを実行するマクロ

    単刀直入にやりたいことを述べます。 Cドライブと仮定します。3つのBOOKがあります。 それぞれ ----- BOOK1.xls「○○Sheet」・・・(実行するファイル)   A 1 BOOK2.xls「△△Sheet」・・・(コピーするファイル名の指定です) 2 A2:E2・・・(コピーするセル範囲の指定) 3 BOOK3.xls「□□Sheet」・・・(貼り付け先のファイル名の指定です) 4 A5・・・(貼り付け先のセルの指定) ----- BOOK2.xls「△△Sheet」・・・(コピー元ファイル)   ABCDE 1 あいうえお 2 かきくけこ 3 ・・・・・ ----- BOOK3.xls「□□Sheet」・・・(貼り付け先のファイル)   ABCDE 1 ・・・・・ 2 かきくけこ・・・(貼り付け) 3 ・・・・・ ----- >やりたいこと BOOK1.xls「○○Sheet」のA1のセルの値とA2セルの値を参照し、 その該当BOOKのセル範囲(BOOK2.xls「△△Sheet」のA2:E2)をコピーして、 BOOK1.xls「○○Sheet」のA3のセルの値と、A4セルの値を参照し、 その該当BOOKのセル範囲(BOOK3.xls「□□Sheet」のA5)へペーストする。 別のブックの指定したセルの値を別のブックの指定したセルへ貼り付けるだけなんですが、 以前関数を使って似たような事をしようとしたのですが、うまくいかなかったので、マクロならできるのでしょうか。 よろしくお願いします。(ちなみにエクセル2000又は2003です)

  • エクセルのマクロについて教えて下さい

    エクセルで、データ(書類)のコピー貼り付けのマクロを組みました。 ツール→マクロで、新しいマクロの記録から、実際にコピーをして貼り付けをし、記録の終了をしました。 次に他のセルの場所でもそのマクロを実行して、何度も場所を変えてコピー貼り付けを実行したいのですが、操作用のボタンを作成して貼り付け、ボタンを押すと、同じ場所でコピー貼り付けを繰り返します。 たしか絶対参照とか相対参照とかあったような気がするのですが…。 どうすれば、他の場所でもボタンを押すだけでコピー貼り付けのマクロを実行できるようになりますか? よろしくお願いします。

  • エクセルのマクロ

    B1をコピー⇒ブラウザの検索窓に貼り付け→エクセルに戻る B2をコピー⇒ブラウザの検索窓に貼り付け→エクセルに戻る B3を・・・という作業を自動化したいです。 B1~B?までを一括で選択してコピーという作業をマクロで自動化する方法はわかるのですが 上記の作業を簡単にする方法がわかりません。 B1→ブラウザ→B2を選択してマクロの表示ボタンをクリックして、右上にあるマクロの表示ボタンからポップアップウィンドウのマクロ画面の実行ボタンを押して~ というのをやっていたら、普通に「Ctrl+C」でコピーしたほうが早いと思います。 同じ操作を複数のセルに別々に実行したい場合、その別々を1個1個実行しているのは アホらしいです。 なにか方法はないでしょうか

専門家に質問してみよう