dポイントプレゼントキャンペーン実施中!

コマンドボタンのコントロール名に「カード」(←これは半角です)とつけて、クリックイベントのプロシージャーを紐づけようとしたら、

Private Sub カード_Click()
End Sub

になってしまい、そのコマンドボタンをクリックしてもイベントが発生しません。

Private Sub カード_Click()の部分にブレークポイントを設置しても、通過されません。
都合上全て半角でコントロール名をつけてしまったため、コントロール名を変えたくないのですが
VBAのフォームモジュールで「カード」(←これは半角です)とすると、
勝手に全角になってしまうのですが、
この機能を止める方法はありますか?

A 回答 (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にする。


<余談>

> コントロール名を変えたくないのですが

もしも単純に手間の問題だけなら、改名処理の自動化コードを
作成して・・・と思ったのですが、「アルファベットや数字の半角/
全角の混在の維持」と「濁音/半濁音の変換」の両立が面倒
だったので(汗)、今回は保留とさせて戴きました。
(「アルファベットや数字は半角に統一も可」といった前提があれば
 濁音・半濁音の処理も簡素になるんですが)
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2013/06/02 18:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!