• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エラー内容が分かりません)

エラー内容が分かりません

このQ&Aのポイント
  • ACCESS VBAの独学を始めましたが、コードに入力したところ、「プロシージャの宣言がイベントまたはプロシージャの定義と一致していません」というエラーが表示されます。
  • 具体的な入力内容は、Private Sub 閉じる_Click(cancel As Integer)を含むコードです。
  • エラーがなくなるためには、「(cancel as ...)」を削除する必要があるようです。

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

  • ベストアンサー
  • 11zep
  • ベストアンサー率36% (48/133)
回答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

hina0603
質問者

お礼

丁寧な解説をいただき、ありがとうございました。 テキストの誤植でしょうか。 サイトで検索しても、上のように書いてあるところがあったりしたので 混乱してしまいました。 ありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

コントロールのイベントのプロシージュアーの引数(の名前・数とデータタイプ)は決ってますよ。 勝手にcancel As Integer  などしてはいけない。 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_100_050.html の フォームを閉じられた時のイベント(閉じるボタン) など参照。 閉じると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

回答No.1

>cancel As Integer ここでcancelをInteger、つまり整数型と定義しています。 なのにIf文中で cancel = True と宣言しています。 ture、falseはブール(Bool)型変数なので、これを使う場合はcancel as Boolと定義する必要があります。

hina0603
質問者

お礼

解説いただきありがとうございました

関連するQ&A