【VBA】カタカナ英語を卒業!たった1行で「ネイティブ発音」に変える魔法のコード
VBAの読み上げ機能(SAPI.SpVoice)を使っていて、「英語の発音が日本人的なカタカナすぎて、全然格好良くない…」とガッカリしたことはありませんか?
実はこれ、バグでも仕様でもなく、単に''「英語専用のエンジン」を呼び出していないだけ''なんです。
たった1行、魔法のコードを書き足すだけで、あなたのExcelやPowerPointが流暢な英語を話し始めます。

【結論】コピペでOK!ネイティブ発音にするソースコード
まずは結論から。以下のコードを標準モジュールに貼り付けてください。ポイントは ''Language=409'' という指定です。
'Windows10 / Microsoft 365 環境で動作確認
Sub NativeEnglishSpeak_Test()
Dim objSAPI As Object
Set objSAPI = CreateObject("SAPI.SpVoice")
'【ここが魔法の1行】言語を英語(US)に指定する
Dim USVoice
On Error Resume Next 'エンジンがない場合の回避策
Set USVoice = objSAPI.GetVoices("Language=409")(0) '409はUS英語のID
On Error GoTo 0
'取得したボイスをセット
If Not USVoice Is Nothing Then
Set objSAPI.voice = USVoice
End If
'読み上げ実行
objSAPI.Speak "Hello! My English pronunciation has dramatically improved."
End Sub
どれくらい変わる?動画で「音の激変」をチェック
「たったこれだけで変わるの?」と思った方は、ぜひ動画で音を聞き比べてみてください。
その差は、[01:10](https://www.youtube.com/watch?v=oOiKpfbLww0&t=70s) からの比較を再生した瞬間にわかります。
- [01:44](https://www.youtube.com/watch?v=oOiKpfbLww0&t=104s) :標準設定(カタカナ)とUS指定後の流暢な発音を直接比較しています。
- [03:54](https://www.youtube.com/watch?v=oOiKpfbLww0&t=234s) :「Apple」という単語一つとっても、発音の「タメ」が全く違うのが面白いですよ。
実装のポイントと解説
1. なぜ「409」なのか?
Windowsの内部では、言語ごとに「ロケールID」という数字が決まっています。
- ''409'':英語 (United States)
- ''411'':日本語
デフォルトでは日本語エンジンが無理やり英語を読もうとするため「カタカナ」になりますが、[02:05](https://www.youtube.com/watch?v=oOiKpfbLww0&t=125s) で解説している通り、明示的に409(US)を指定することで、Microsoft Zira などの英語専用エンジンが呼び出される仕組みです。
2. 変数「USVoice」への代入
Set USVoice = objSAPI.GetVoices("Language=409")(0)
この「(0)」は、PCに入っている英語エンジンの中の「1番目」を使うという意味です。
今後の課題とAIアドバイス
今回の手法は非常に強力ですが、以下の点に注意してください。
- ''エンジンの有無'':お使いのWindowsに英語の音声パッケージがインストールされていないとエラーになります。その場合は「設定 > 時刻と言語 > 音声認識」から英語を追加してください。
- ''他言語への応用'':409を他のコードに変えれば、フランス語や中国語など、多言語対応のツールも夢ではありません。
''AIからの提案:''
次は、PowerPointの「スピーカノート」に入っている英文を自動でこのネイティブ音声に変換して、プレゼンの練習用MP3を作成するツールに発展させると、さらに需要がありそうですね!
関連リンク
-
- -
記事が役に立ったら、ぜひ動画のコメント欄で教えてくださいね!