![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
ACCESS VBAの独学を始めました。テキストどうりにコードを入力しているのですが、以下のエラーがでていまいます。
プロシージャの宣言がイベントまたはプロシージャの定義と一致していません
入力内容は以下のとおりです
Private Sub 閉じる_Click(cancel As Integer)
Dim sts As Integer
sts = MsgBox("終了しますか?", vbYesNo)
If (sts = vbNo) Then
cancel = True
Else
DoCmd.Close
End If
End Sub
(cancel as ・・・)を消去すると、エラーはでません。
なぜなのか分からず質問しました。
すみませんが、よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
ボタンのクリックイベントにcancelパラメータは、ありません。
コードの内容からすると"Form_Unload"イベントに記載すべきと思われます。
以下の様にすればフォームを閉じる際に確認のメッセージが表示されます。
恐らくDoCmd.Closeは、必要ないはずです。
Private Sub 閉じる_Click()
DoCmd.Close
end sub
Private Sub Form_Unload(Cancel As Integer)
Dim sts As Integer
sts = MsgBox("終了しますか?", vbYesNo)
If (sts = vbNo) Then
cancel = True
End If
End Sub
丁寧な解説をいただき、ありがとうございました。
テキストの誤植でしょうか。
サイトで検索しても、上のように書いてあるところがあったりしたので
混乱してしまいました。
ありがとうございました。
No.3
- 回答日時:
コントロールのイベントのプロシージュアーの引数(の名前・数とデータタイプ)は決ってますよ。
勝手にcancel As Integer などしてはいけない。
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub0 …
の
フォームを閉じられた時のイベント(閉じるボタン)
など参照。
閉じるとCaptionで表示されたコマンドボタンではなく、フォームの閉じるボタン(X)との違いを考えること。
ーー
http://www.accessclub.jp/bbs5/0007/vba1720.html
参照
ーー
エクセルでは
http://www.ken3.org/vba/backno/vba061.html
ユーザーフォームに(閉じるを担わせた)ボタンがある場合
Private Sub btnCLOSE_Click()
Unload Me '自分自身を閉じます
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Visual Basic(VBA) 標準モジュール Public mOnTime As Date Sub sample() '実行プロシ 1 2023/02/22 15:44
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
-
4
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
5
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
6
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
7
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
8
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
9
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
10
EXCEL VBAのユーザーフォームに引数を渡す方法について
Excel(エクセル)
-
11
YES/NO型の値
Excel(エクセル)
-
12
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
13
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
14
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
15
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
16
Access コンボボックスの値をクリアしたい。
PowerPoint(パワーポイント)
-
17
Access サブフォームでの選択行の取得
その他(データベース)
-
18
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
19
accessの SQL文 INSERT命令
Access(アクセス)
-
20
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エラー内容が分かりません
-
複数のデータ系列の線の太さを...
-
EXCEL マクロ クリップボードク...
-
エクセルファイルを自身のファ...
-
エクセル終了時の保存確認メッ...
-
EXCELで日付を自動でファイル名...
-
VBAを一度起動するとずっと出て...
-
エクセルマクロを有効にしない...
-
excelインポート時の「実行時エ...
-
エクセルでツールバーに「縮小...
-
エクセルマクロにてパワーポイ...
-
秀丸で保存時のフォルダを固定...
-
VBA マクロ実行時エラー’1004Ra...
-
ファイル名を今日の日付、時刻...
-
VBAを使ってエクセルシート...
-
エクセルの指数を無効にしたい
-
エクセルVBA Workbook変数に変...
-
EXCELマクロコードを、それを含...
-
エクセルマクロが海外PCで開けない
-
別のパソコンでエクセルのマク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAで、実行時にsheet上...
-
エラー内容が分かりません
-
エクセルVBAでmeに相当するもの...
-
コモンダイアログエラー
-
オプションボタン
-
EXCEL VBA テキストボックスの...
-
VBAのコントロールなんかをコレ...
-
EXCEL VBA カレンダーコントロ...
-
エクセル2010のvbaとコマンドボ...
-
ワードVBAで画像を挿入
-
アクセス カンレンダーコント...
-
複数のデータ系列の線の太さを...
-
エクセル終了時の保存確認メッ...
-
フォルダ内の全ブックのシート...
-
エクセルでツールバーに「縮小...
-
エクセルの指数を無効にしたい
-
excelファイルに使われているVB...
-
cellsで特定の離れた範囲を選択...
-
ExcelVBAで今開いているユーザ...
-
ファイル名を今日の日付、時刻...
おすすめ情報