4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Windows11で発生したVBEの全角/半角カタカナ オートコレクト問題をNLSのバージョン変更で対応

Posted at

Access利用者です。Windows11に移行したらVBEのオートコレクトにやられた話です。
数年前に、QiitaとかMSDNはてなブログで言及されるNLSのバージョンによる問題で困ったことがありました。
(例)使っているデータベースに、フィールド名に半角カタカナを使ったテーブルと全角カタカナを使ったテーブルが存在しています。

テーブルA
 フィールド名1
 フィールド名2

テーブルB
 フィールド名1
 フィールド名2

VBAの記述をしていると"rs!フィールド名1"がオートコレクトにより"rs!フィールド名1"などになってしまう事があります。
NLS 6.2の時には問題では無かったのですが、NLS 6.3で全角カタカナと半角カタカナを区別するようになったため、VBAも全角半角を正しく記述する必要があります。
Windows10のときは"rs![フィールド名1]"、"rs2![フィールド名1]"のように括弧で囲むことで、オートコレクトの対象外にする事が出来ていました。


ところが、Windows11にしたところ、"[ ]"で括ってもオートコレクトされてしまうようになりました。また、最適化やインポートでも半角が全角(またはその逆)に変わってしまいます。
厄介なことに、開発機(Windows11)では問題なく動作するのに、実行機(Windows10)たちはエラーで動きません。
仕方が無いので、AccdbをWindows10のPCに持っていって手直しをするハメになりました。
後輩R君のアドバイスでNLSのバージョンを下げたら、今のところWindows10(202H)当時のようにかっこで括る方法が有効になりました。


変更するレジストリキー

コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Sorting\Versions

(既定)の値が"00060403"(NLS 6.4)になっているので"00060305"(NLS 6.3)に変更します。
社内のPCが全てWindows11になれば不要になる対処ですね。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?