• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フォームモジュール イベントが発動しない半角→全角)

VBAフォームモジュールでコマンドボタンのイベントが発生しない問題

このQ&Aのポイント
  • VBAフォームモジュールでコマンドボタンに「カード」(半角)というコントロール名を付けても、クリックイベントが発生しません。
  • Private Sub カード_Click()の部分にブレークポイントを設置しても、通過されません。
  • コントロール名を変えずに、VBAのフォームモジュールで「カード」(半角)とすると、自動的に全角に変換されてしまいます。この変換を止める方法はありますか?

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

> この機能を止める方法はありますか? こちらの環境(Access2007/WinXP Home)で確認した限りでは、 止める方法はないようです。 ただ、半角カタカナのコントロールであっても、以下の方法でSub プロシージャを生成させた場合は、半角カタカナが維持されます。 ポイントは、  【プロシージャ名を手入力せず、コード ビルダに作成させる】 ことです。 1)当該イベントのコードを既に組んでいる場合は、Visual Basic  Editor(VBE)画面で、一時的にプロシージャ名を変更  (「Private Sub カード_Click()」→「Private Sub ★カード_Click()」) 2)当該フォームをデザインビューで開き、プロパティシートの当該  イベント欄にカーソルを移動 3)同イベント欄の右端に表示される「...」(ビルダ)ボタンをクリック 4)『ビルダの選択』ダイアログが開いた場合は、「コード ビルダ」を  選択して『OK』ボタンをクリック  *下記注記参照* 5)半角カタカナでSubプロシージャが生成されたのを確認したら、  必要なコードを記述  (手順「1」でコードが既存の場合は、中身をCut&Pasteして、  元のSubプロシージャは削除) ・・・以上です。 <注記> 既に設定されているかもしれませんが、イベント発生時の処理を 専らVBAで行う場合は、以下の設定を行うと、『ビルダの選択』 ダイアログの表示を省略できます: ((Access2007以降))  『Access のオプション』ダイアログで『オブジェクト デザイナー』を  選択し、『フォーム/レポート』領域の「常にイベント プロシージャ  を使用する(E)」のチェックをOnにする。  (上記ダイアログは、Access2007ではOfficeボタンのクリックで  表示されるメニューの最下方の『Access のオプション』ボタン、  Access2010では『ファイル』タブの最下方の『オプション』ボタン  から、それぞれ開けます) ((Access2003以前))  Accessのメニューで「ツール(T)→オプション(O)...」を選択して  『オプション』ダイアログを開き、『フォーム/レポート』タブ内にある  「常にイベント プロシージャを使用する(E)」のチェックをOnにする。 <余談> > コントロール名を変えたくないのですが もしも単純に手間の問題だけなら、改名処理の自動化コードを 作成して・・・と思ったのですが、「アルファベットや数字の半角/ 全角の混在の維持」と「濁音/半濁音の変換」の両立が面倒 だったので(汗)、今回は保留とさせて戴きました。 (「アルファベットや数字は半角に統一も可」といった前提があれば  濁音・半濁音の処理も簡素になるんですが)

vrizsbeknkczw
質問者

お礼

ありがとうございます。