エクセルバージョン
マイクロソフト365
今回は学生さんや外国語の発音を勉強したいと思っている方たちのために、効率よく学習できるように、英語の発音を連続再生できるようにVBAで簡易的なものを作成してみたいと思います。
それではいってみましょう!
Menu
作成手順
・翻訳ツールを使用
・SpVoiceオブジェクトを使用して英語の発音を出力
・繰り返し処理(For)で連続再生
大まかにこんな感じで作成していきたいと思います(((^-^)))
翻訳ツール
翻訳ツールを表示させる
まずは翻訳ツールを表示させます、
校閲 → 翻訳
翻訳ツールを表示させます。
翻訳ツールの詳細はこちら
翻訳された英語をコピペする
下記のようにA列に自分が調べたい日本語を入力して必ず入力箇所を選択します。
すると翻訳ツールの下記赤枠の翻訳先の言語に、英語で翻訳された文字が自動で表示されるのでコピペしてB列に貼付けします。
貼付けする時はB2セルを右クリックして下記のように貼り付けます。
形式を選択して張り付ける → Unicodeテキスト
するとB2セルから縦にきちんと貼付けできます(*^^)v
翻訳ツールの解説は下記で詳しいく解説しています。
https://dailyrecords.blog/archives/13284
それでは次にエクセルVBAで早速発音ができるようにプログラミングしていきたいと思います。
選択したセルの単語だけ発音
まずはVBA画面(ビジュアルベーシックエディター)を開きます。
➀参照設定
ツール → 参照設定
ライブラリファイルから下記赤枠をチェックして参照設定します。
➁下記をそのまま標準モジュールにコピペして実行します。
必ずB列の発音させたい英語のセルを選択してから実行してください。
英語の発音が音声で出力されます。
1 2 3 4 5 6 7 | Sub spv() 'オブジェクト作成 Dim sv As New SpVoice Set sv.Voice = sv.GetVoices.Item(0) '音声の種類を選択 Selection.Speak '発音が出力 End Sub |
シートにボタンを作成して実行したい場合は下記で解説しています。
単語を連続再生(繰り返し処理For)
まずはVBA画面(ビジュアルベーシックエディター)を開きます。
➀参照設定
ライブラリファイルから下記赤枠をチェックして参照設定します。
ツール → 参照設定
➁下記をそのまま標準モジュールにコピペして実行します。
B列の開始したい単語をクリック(開始セル)してスタートセルを選択してから実行します(繰り返し処理)
最後の行の単語まで連続で発音できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | Option Explicit Dim canBtn As Boolean '停止bool Sub spvRep() '変数 Dim msg, STARTROW, lastRow As Integer Dim rng, dataRange As Range '開始セル確認 msg = MsgBox("選択したセルから実行しますか?", 4) '「はい」なら実行 If msg = vbYes Then '開始行番号と最終行番号取得 STARTROW = ActiveCell.Row lastRow = Cells(Rows.Count, 2).End(xlUp).Row 'データ範囲をセット Set dataRange = Range(Cells(STARTROW, 2), Cells(lastRow, 2)) 'SpVoiceオブジェクト作成 Dim sv As New SpVoice Set sv.Voice = sv.GetVoices.Item(0) '停止ボタンをFalseにする canBtn = False '繰り返し処理(ForEach) For Each rng In dataRange DoEvents If canBtn = True Then '処理停止 Exit For End If rng.Speak '音声を出力 rng.Offset(1).Select '次の単語に移動 Next '「いいえ」なら終了 ElseIf msg = vbNo Then Exit Sub End If Set sv = Nothing MsgBox "FINISH" End Sub Sub 処理終了() canBtn = True '処理を停止するBool End Sub |
下記の開始位置をクリックで選択してから実行で、最後まで自動で発音してくれます\(^^)/
実行手順
①エクセルを開いてショートカットキーのAlt + F11でVBAを起動します。
②標準モジュールに下記のサンプルコードをコピペします。
➂VBAの再生ボタンもしくはF5キーを押して実行します。
ボタンを作成して途中で終了できるようにする
ボタンを作成しないと途中終了ができないので下記を参考に作成してみてください。
【マクロの登録】
再生ボタン → spvRep
停止ボタン → 処理終了
シートにボタンを作成して実行したい場合は下記で解説しています。
まとめ
今回は英単語を覚えるなら発音も一緒にやらないと、実践向けではないと思い音声を出力と連続で発音を聞けるようにしてみました(*^^)v
よかったらご使用してみてください!
以上です。
英語や外国語関連
【エクセル】翻訳ツールで和英や英和の英単語など外国語を翻訳する
【エクセルVBA】英語や外国語の発音を自動で連続して読み上げる
【エクセルVBA】YouTube動画を一定間隔で繰り返し再生(API)