Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6771 / 13644 ツリー ←次へ | 前へ→

【43243】イベントマクロを用いた作業 のり 06/10/6(金) 18:20 質問[未読]
【43244】Re:イベントマクロを用いた作業 neptune 06/10/6(金) 18:34 回答[未読]
【43245】Re:イベントマクロを用いた作業 ichinose 06/10/6(金) 18:38 発言[未読]
【43264】Re:イベントマクロを用いた作業 のり 06/10/7(土) 14:25 お礼[未読]

【43243】イベントマクロを用いた作業
質問  のり  - 06/10/6(金) 18:20 -

引用なし
パスワード
   Workbook_BeforeClose、Workbook_BeforeSaveを用いて

Saveがされる時、Closeがされる時にファイルのCopyをとる
仕組みを考えております。

*****This Workbook*****
Option Explicit

Private Sub Workbook_BeforeSave()
  test
End Sub

Private Sub Workbook_BeforeClose()
  test
End Sub
***********************
*****Module1***********
Option Explicit
  
  Sub test()
    Dim myname, Fpass As String
    myname = ActiveWorkbook.Name
    Fpass = Range("B1").Text
    ActiveWorkbook.SaveCopyAs Fpass & myname
  End Sub
***********************
の用に記述をしていますが、Saveをいざしようとすると
下記のエラーが発生してしまいます。
*****Error*************
プロシージャの宣言が、イベントまたはプロシージャの定義と一致していません。
***********************

どこがおかしいでしょうか?初心者すぎる質問かもしれませんが
宜しくお願いいたします。

【43244】Re:イベントマクロを用いた作業
回答  neptune  - 06/10/6(金) 18:34 -

引用なし
パスワード
   ▼のり さん:
>どこがおかしいでしょうか?初心者すぎる質問かもしれませんが
そのとおり!そういう時はHelpを見ましょう。
イベントマクロの宣言は変えてはいけません。

例えばBeforeSave イベントをHelpで調べてみましょう。
構文
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean)
と書式が決まっています。

【43245】Re:イベントマクロを用いた作業
発言  ichinose  - 06/10/6(金) 18:38 -

引用なし
パスワード
   ▼のり さん:
こんばんは。

>Workbook_BeforeClose、Workbook_BeforeSaveを用いて
>
>Saveがされる時、Closeがされる時にファイルのCopyをとる
>仕組みを考えております。

エラーは

>*****This Workbook*****
>Option Explicit
>
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
   Application.EnableEvents = False
>  test
   Application.EnableEvents = true

>End Sub
>

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   Application.EnableEvents = False
>  test
   Application.EnableEvents = true
>End Sub

これで発生しないと思います。
(イベントプロシジャーの宣言の仕方が違います)

>***********************
>*****Module1***********
>Option Explicit
>  
>  Sub test()
>    Dim myname, Fpass As String
>    myname = ActiveWorkbook.Name
>    Fpass = Range("B1").Text
>    ActiveWorkbook.SaveCopyAs Fpass & myname
         '          ↑ここが正しい名前が
'                    設定されていれば作動はします
>  End Sub
>***********************
>の用に記述をしていますが、Saveをいざしようとすると
>下記のエラーが発生してしまいます。
>*****Error*************
>プロシージャの宣言が、イベントまたはプロシージャの定義と一致していません。
>***********************
>
>どこがおかしいでしょうか?初心者すぎる質問かもしれませんが
>宜しくお願いいたします。

Excelの機能として、バックアップファイルの作成という機能もありますが、
それではいけませんか? 検討してみてください。

【43264】Re:イベントマクロを用いた作業
お礼  のり  - 06/10/7(土) 14:25 -

引用なし
パスワード
   neptuneさん

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

ヘルプは見ていたのですが、エラーの方にばかり目がいってしまい
専門用語でちんぷんかんぷんになってしまっていました。

ichinoseさん

分かりやすいご説明大変ありがとうございました。
目指していたものが出来上がりました。

6771 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free