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になれば不要になる対処ですね。