■ 音声機能(音声による読み上げ機能)を操作しよう
Excel2002から追加された機能の中に、音声機能(音声による読み上げ機能)があります。この読み上げ機能を使用することで、セルに入力されているデータを読み上げたり、VBAから任意の文字列を音声として出力することができます。
この機能を利用することで、セルに入力されているデータの読み合わせチェックを1人で行ったり、マクロの操作方法を音声によってガイダンスすることも可能になります。
音声による読み上げ機能をVBAから操作するには、主に2つの方法があります。
■RangeオブジェクトのSpeakメソッドを使用する方法
RangeオブジェクトのSpeakメソッドを使用することで、セルに入力されているデータの内容を音声で読み上げることが可能になります。
[書式]
オブジェクト.Speak 読み上げ方向, 数式の読み上げ
オブジェクトには、Rangeオブジェクトを指定します。
読み上げ方向には、読み上げる方向をXlSpeakDirectionクラスの定数で指定します。XlSpeakDirectionクラスの定数は次の通りです。
定数 |
読み上げ方向 |
xlSpeakByColumns |
列方向 |
xlSpeakByRows |
行方向 |
数式の読み上げには、TrueまたはFalseを指定します。Trueを指定すると計算結果ではなく数式を読み上げます。省力した場合は、Falseが指定されます。
※Excelに[読み上げ]機能がインストールされていない場合、エラーが発生します。[読み上げ]機能のインストールについては、最後に解説します。
例:
Sub Test()
Range("A1:C3").Speak xlSpeakByRows
End Sub
この例では、アクティブシートのA1からC3のセルに次のようなデータが入力されているとします。
|
A |
B |
C |
1 |
1 |
2 |
3 |
2 |
4 |
5 |
6 |
3 |
7 |
8 |
9 |
コードを実行すると、1、2、3、4、5、6、7、8、9の順に数字を読み上げます。xlSpeakByRowsをxlSpeakByColumnsに変更すると、1、4、7、2、5、8、3、6、9の順に数字を読み上げます。 |
■SpeachオブジェクトのSpeakメソッドを使用する方法
SpeachオブジェクトのSpeakメソッドを使用することで、読み上げる文章をコードの中で任意に設定することができます。
[書式]
Application.Speach.Speak テキスト, 非同期, XMLの指定
テキストには読み上げる対象となる文字列を指定します。セルを指定することもできますが、対象となるテキストは単一になるため複数セルの範囲を指定することはできません。
非同期には、TrueまたはFalseを指定します。Trueを指定すると読み上げの途中でもExcelを操作することができます。Falseを指定すると読み上げが完了するまで処理はウェイトされます。省力した場合は、Falseが指定されます。
XMLの指定には、TrueまたはFalseを指定します。Trueを指定するとテキストをXMLファイルと解釈し、"<"から">"で囲まれた箇所(タグ)を無視して読み上げを行います。省力した場合は、Falseが指定されます。
※Speachオブジェクトを使用する際は、Applicationオブジェクトの記述を省略できません。省略するとエラーが発生します。
例:
Sub Test()
Application.Speech.Speak "エクセル大事典"
End Sub
Sub Test()
Application.Speech.Speak Range("A1"), True
End Sub
この例では、A1セルに入力されているデータを読み上げます。非同期の指定にTrueが設定されているため、読み上げの途中でもExcelを自由に操作することができます。 |
Sub Test()
Dim MyIE As Object
Dim MyStr As String
Set MyIE = CreateObject("InternetExplorer.Application")
MyIE.Navigate "http://www.google.com/"
Do While MyIE.Busy
DoEvents
Loop
Do While MyIE.Document.ReadyState <> "complete"
DoEvents
Loop
MyStr = MyIE.Document.Body.InnerText
Application.Speech.Speak MyStr, True, True
MyIE.Quit
Set MyIE = Nothing
End Sub
この例では、XMLの指定にTrueが設定されているため、指定したURLのWebページの、タグを無視したドキュメントを非同期で読み上げます。 |
■Excelに[読み上げ]機能をインストールする
Excelで[読み上げ]機能を使用するには、[読み上げ]機能がインストールされている必要があります。ここまでのVBAコードを実行するにも、[読み上げ]機能がインストールされている必要があります。
・読み上げ機能のインストール
Excel2002、2003では、以下の方法で読み上げ機能をインストールすることができます。
1.[スタート]メニュー>[コントロールパネル]>[プログラムの追加と削除]を開く
2.一覧から[Microsoft Office ○○ Edition △△]を選択する
※○○にはEditionの名前、△△にはバージョンが入ります
3.変更ボタンを押します
4.[セットアップ]ダイアログボックスが表示されるので、[機能の追加/削除]を選択し、[次へ]をクリックします
5.[アプリケーションごとにオプションを指定してインストール]にチェックを入れ、[次へ]をクリックします
6.[Microsoft Office]>[Microsoft Office Excel]>[読み上げ]>[マイコンピュータから実行]をクリックし、[更新]をクリックします
7.表示されるメッセージに従ってインストールを完了します
・Excel2007で[読み上げ]機能を利用する
Excel2007でも読み上げ機能を利用することができますが、日本語での読み上げを行うには旧バージョン(Office XP、または2003)のOfficeがインストールされている必要があります。
旧バージョンのOfficeがインストールされている環境なら、次の方法で日本語の音声を選択することができます。
1.[スタート]メニュー>[コントロールパネル]>[音声認識のプロパティ]を開く
2.[音声合成]タブをクリック、[音声の選択]コンボボックスより、[LH Kenji]または[LH Naoko]を選択し、[OK]をクリックします。
※このプロパティの[音声の速度]スライダーを調節することで、読み上げる音声の速度を調節することができます。
Excel2007ではさらに、[読み上げ]ツールバーに該当するものがないため、クイックアクセスツールバーに手動で[セルの読み上げ]ボタン等を追加する必要があります。
1.[クイックアクセスツールバーのカスタマイズ]メニューより[その他のコマンド]をクリックします。
2.[Excelのオプション]ダイアログボックスが表示されるので、[コマンドの選択]コンボボックスより[リボンにないコマンド]を選択します
3.リストの中から[セルの読み上げ]、[セルの読み上げ−セルの読み上げを停止]、[セルを1行ずつ読み上げ]、[セルを1列ずつ読み上げ]、[Enterキーを押したときにセルを読み上げ]を選択、[追加]ボタンをクリックして[クイックアクセルツールバーのカスタマイズ]リストに加えます。
※追加は1つずつ行ってください
4.[OK]をクリックしてダイアログボックスを閉じると、クイックアクセスツールバーに読み上げ機能のコマンドボタンが追加されます。
※VBAからのみ、読み上げ機能を使用する場合は、上記の作業は必要ありません。
以上、音声による読み上げ機能について解説しました。
読み上げ機能は、使用する人が少ない機能のひとつですが、利用することで業務効率を改善することのできる便利な機能のひとつです。
ぜひ今回のテクニックを利用して、あなたの業務の効率化に役立ててください。
|