- ベストアンサー
半角カタカナがVBAだと全角カタカナになる現象の原因と対策
- VBAでフォームを作成する際、半角カタカナが全角カタカナに自動修正される現象が発生します。具体的には、フォーム上のテキストボックスに半角文字を設定すると、フォーム自体が全角になり、コンパイルエラーが発生します。
- この問題を解決するには、Meキーワードを使用することで、フォーム上のオブジェクトに直接アクセスします。具体的には、Me.テキストボックス名という形式でオブジェクトに値を設定します。これにより、フォーム自体が全角になることなく、テキストボックスだけが半角のままで設定されます。
- 半角カタカナが全角に自動修正される現象は、VBAの仕様によるものであり、この現象を避けるためには、オブジェクト名にはなるべく半角を使用しない方が良いです。また、半角カタカナを使用する場合は、必要な箇所で明示的に全角に変換するようにすると良いでしょう。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
当方の場合、オブジェクト名に半角カタカナを使用したケースは皆無です。 なんとなくですがエラーの種になりそうな・・・。 Access2010ですが少し試してみました。 フォーム名を半角カタカナで『カタカナ』にした場合 1・Form_カタカナ 2・Forms!カタカナ 3・forms("カタカナ") 3の場合のみ半角カタカナのままで、1・2は全角カタカナに置き換えられてしまいます。 どうしても半角カタカナのフォーム名にしたいのなら、3の方法かと思います。 (お勧めしているわけではありません) なお、オブジェクト名中にアンダーバーを使用する場合があるので 1のフォーム指定方法は使ったことが有りません。 なぜ置き換えられてしまうのか?はよく分かりませんが アスキーコードの128からはコードページによって変わりますので その辺が関係してくるのかな???と思います。(文字化け対策?) 日本語の場合 http://yellow.ribbon.to/~netnetnet/VB/memo/VB_ascii_128-255.html ヨーローッパ語圏? http://msdn.microsoft.com/ja-jp/library/cc392379.aspx
その他の回答 (1)
- tsubuyuki
- ベストアンサー率45% (699/1545)
http://qanda.rakuten.ne.jp/qa7815768.html 以前(と言うか、最近)、こんなトピックがありました。 半角カナ及び記号に関する、私の感覚をしたためていますので、 良かったら参考になさってください。
お礼
リンク先の質問拝見しました。 「環境依存文字」ってなんだか聞いた事があります。 今後の為に ・カナは全角 ・英数字は半角 ・理由が無い限り大文字(ABC) ・全角記号は使わない ・半角記号は _ だけ ・マル1とかは使わない ・????? (株)(有)は以ての外 のルールで作っていきたいです。
お礼
ご回答ありがとうございます。