
このたび、見様見真似でエクセルVBAで遊んでいるのですが…
文字化けしてるーーー
コピペして貼った文字が「?」になっちゃってプログラムが書けない💦
どうやらこの文字化けの原因は
メモ帳で作成したテキストファイルの文字コードは「UTF-8」になります。それに対しWindowsの入出力システムでは「Shift-JIS」が使われているため文字化けが起こるのです。
ということらしい。
Macのファイルが文字化けする原因もこれらしい😳理由なんて考えたことなかった。
符号化文字集合と符号化記号
今回の話をする前に、ちょっと整理しておきたいかも。
Shift-JISとかUTF-8とか、よく聞くけど、よく分かっていないという、私のような方、こちらのサイトに分かりやすい説明がありました!
リンクを貼らせていただきます。。
文字コードとは?~UTF-8はパソコンの世界共通語~l- GiXo Ltd.
図解すると、こういう関係性なんだそうです。

文字コードとは?~UTF-8はパソコンの世界共通語~|- GiXo Ltd.より引用改変
詳しいことはこの素人ブログではなくて、詳しいサイトを参考にしてください…(*゚▽゚)ノ
UTF-8を使用できるようにする
で、本題。
Windowsでは「UTF-8」を使用できるように設定できます。
これで、今回問題になっている文字化けなどの問題が解決するらしい。ただ、ものによっては設定を触ることで動かなくなってしまう場合もあるので、取り扱う文書によって、どちらかの設定にするのかを選ぶのがよいみたいです(特に官公庁関係の書類は古い形式のものが多いのだとか)。
ちなみに、まさに つい最近 S-JISとUTF-8 を見たな…と思ったらコレでした。
CSVをダウンロードしようと思った時に出てきた画面。
何のことかと思っていたけど、仕様によっては文字化けしてしまうから選択できるようになっていた…ということかな。

調べてみると、UTF-8を使えるようにするのはあまり難しくなさそうでした。
Windowsのシステムロケールというところでできる。
システムロケールとは
ロケールとは…?
国や地域などの属性設定のこと。ロケール情報には、国や地域のほか、使用する言語や時間帯や日付・時刻の表記、通貨単位など、各国各地域に依存する属性が含まれる。
じゃあシステムロケールとは…?
Microsoftのサイトによると
SystemLocale は、Unicode* 対応でないプログラムで使用する既定の言語を指定します。 この設定は、Windows セットアップと Windows 展開サービスの両方で使用されます。 システム ロケールは、既定でシステムが使用するビットマップ フォントとコード ページ (ANSI または DOS) を指定します。 システム ロケール設定は、ANSI (Unicode 対応でない) アプリケーションのみに影響します。 非 Unicode プログラムの言語は、システムごとの設定です。 ユーザーは、コントロール パネルの地域と言語の項目で [管理] タブを使用して、システム ロケールを変更できます。
SystemLocale (microsoft-windows-international-core-systemlocale) | Microsoft Learn
*Unicode: 符号化文字集合や文字符号化方式などを定めた、文字コードの業界標準規格の一つ。
うーん…?
分かるような分からないような…(笑)
やってみる (Windows 11)
とりあえずやってみましょうか。今回のパソコンはWindows11です。
設定画面から「時刻と言語」を選択

言語と地域を選択

管理用の言語の設定を選択

システムロケールの変更を選択

ワールドワイド言語サポートでUnicode UTF-8を使用を選択

この画像を見て分かる通り、この設定はベータ版なので、変更する際は自己責任でお願いします!
再起動
再起動して、設定変更完了です。
最後に
ということで、WindowsパソコンでUTF-8を使うことができるようにする話でした。
簡単に調整できることが分かってよかったです。
ちなみに、私は今回どうしても作りたいファイルが文字化けしてしまってどうしようもないので、とりあえず設定を変えましたが、これ以外では今まで困ってないし、とりあえず終わったら元に戻そうかなと思ったりしています。いや、どっちがいいのかなあ…よく分からない。自動で切り替えてくれたらいいのにね。笑 (*゚▽゚)
皆さんはどうされていますか?
それでは今回はこのへんで。ヽ(*´∀`)
その他参考にさせていただいたサイト
【Windows11】システムロケールをUTF-8に変更する方法と注意点|文字化けを根本から解消
追記 2025/6/23・元に戻しました
変更してやってみたのですが、目的のファイルは結局文字化けしている上に、新たな文字化けまで発生してしまったので、元に戻しました。(゜-゜)



