GEN MUTO'S HOMEPAGE  エクセル大事典  エクセルVBAを極める

エクセルExcel大事典 エクセル大事典TOPページへ
 ■ エクセルVBA中級編−ワークシートを使いこなそう
  音声機能(音声による読み上げ機能)を操作しよう
 
■ 音声機能(音声による読み上げ機能)を操作しよう

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からのみ、読み上げ機能を使用する場合は、上記の作業は必要ありません。


以上、音声による読み上げ機能について解説しました。

読み上げ機能は、使用する人が少ない機能のひとつですが、利用することで業務効率を改善することのできる便利な機能のひとつです。

ぜひ今回のテクニックを利用して、あなたの業務の効率化に役立ててください。

>> 次の話にすすむ


サイト内検索ができます

Microsoft Most Valuable Professional

Microsoft MVP Excel
武藤 玄 プロフィール
 

■■■ 執筆した書籍 ■■■
 

EXCEL VBA 業務自動化
 

Excel VBA を5日でマスターする本
 

仕事を速くする Excel VBA 入門
 

Excel VBAと業務改善のポイントがわかる本
 

Access VBA ベーシック スタンダード
 

Excel VBA アクションゲーム作成入門
 

■■■ 連載中の記事 ■■■
 

Excel VBAで業務改善!
 

実務で使うExcel VBA
 


TOPページ


■ エクセルVBA超入門

 ・9ステップで"Hello World!"
  からオブジェクト指向まで!
  1."Hello World!"を表示しよう
  2.基本はデータの入出力
  3.繰り返し処理
  4.シートで簡易データベース
  5.名前をつけよう
  6.構造化プログラムに挑戦
  7.構造体を使ってみよう
  8.フォームを使ってみよう
  9.オブジェクト指向に挑戦

■ エクセルVBA中級編

 ・VBAでいろんなテクニック
  変数・関数のスコープ
  引数の参照方法を明示
  配列の中身を一気に複写
  識別子がよいコードを作る
  データ定義型をもっと知ろう
  定数と列挙型を活用しよう
  エラー処理の重要性1
  エラー処理の重要性2
  いろいろな条件分岐
  いろいろな繰り返し処理
  演算子について知ろう
  文字列操作 連結 変換 置換
  文字列操作 検索 比較 書式
  日付操作関数を知ろう
  数値操作・評価・その他関数
  並び替えソートをマスター
  いろいろな検索をマスター
  VBEditorを使いこなそう
  マクロの記録を活用しよう1
  マクロの記録を活用しよう2
  VBAからVBEを操作しよう1
  VBAからVBEを操作しよう2
  VBAからVBEを操作しよう3
 ・ワークシートを使いこなす
  セルの参照をマスターしよう
  セルの選択をマスターしよう
  セルの操作をマスターしよう
  セルの書式設定をマスターしよう
  行・列の操作をマスターしよう
  シートの参照をマスターしよう
  シートの操作をマスターしよう
  ブックの操作をマスターしよう
  ウィンドウの操作をマスターしよう
  イベントプロシージャを活用しよう
  ワークシートを印刷しよう1
  ワークシートを印刷しよう2
  音声(読み上げ)機能を操作しよう
  グラフを操作しよう
 ・ユーザーフォームを使いこなす
  ユーザーフォームを使おう
  UserFormsオブジェクト
  Labelコントロール
  TextBoxコントロール
  ComboBoxコントロール
  ListBoxコントロール
  CheckBoxコントロール
  OptionButtonコントロール
  ToggleButtonコントロール
  CommandButtonコントロール
  ScrollBarコントロール
  SpinButtonコントロール
 ・VBA関数の一覧
  Aから始まる関数の一覧
  Cから始まる関数の一覧
  Dから始まる関数の一覧
  Eから始まる関数の一覧
  Fから始まる関数の一覧
  Gから始まる関数の一覧
 
■ エクセルVBAを極める
 VBAスーパーテクニック
 
 ・データベースへ接続してみよう!
  CSVファイルへの接続
  ワークシートへの接続
  mdbファイルへの接続
  SQL Serverへの接続
  ADOレコードセットの操作1
  ADOレコードセットの操作2
 ・ファイルを操作してみよう!
  FileSystemObjectの操作
  Drive File Folderの操作
  TextStream ダイアログ
  ステートメントでファイル操作1
  ステートメントでファイル操作2
 ・他アプリと連携してみよう!
  ActiveXオートメーションの操作
 ・ゲーム技でマクロを超える
  エクセルで音を鳴らす1
  エクセルで音を鳴らす2  
  スクリーン座標を取得
  様々なイベント取得
  リボンUIを制御しよう1
  リボンUIを制御しよう2
  シート上でアニメを動かそう
 
■ 一歩上行くエクセル
 基本操作の完全マスター!

 
 ・あなたはいったい
  エクセルで何をしたいのか?
  エクセルで業務効率化
  エクセル関数を使いこなす
  エクセルの便利技
  エクセルは最高の帳票ツール
 ・エクセル基本操作上級編!
  セル選択、コメント、シリアル値
  オート機能を使いこなそう!
  参照、条件付書式、入力規則
  関数をもっと理解しよう!
  配列数式を有効利用しよう!
  データの正規化をしよう!
  ショートカットキーを利用しよう1
  ショートカットキーを利用しよう2
  Office用アプリを作成しよう!
  PowerPivotとExcelで簡単BI!
 ・世間の誤ったエクセルの
  べからず集
  エクセルで文章を書くべからず
  エクセルで図形を描くべからず
  エクセルでシステムをつくるな
 
■ エクセル関連その他

 ・エクセルコミニュティにあなたも
  参加しませんか?
  Excel関連リンク・コミニュティ
 ・VBの理解がVBAをマスターする
  最短距離!
  VB関連の老舗・大家サイト
 ・エクセルExcel大事典掲示板
 ・プライバシーポリシー

2000アイテムを超えるラベルを販売
送料無料、即納対応の優良ショップ
今買っているラベルより確実に安い!
OAラベルの販売専科グラフトラベル




エクセルExcel大事典ははリンクフリーです エクセル大事典Excel大事典
お問い合わせはこちら gengengen@yahoo.co.jp

Copyright© Gen Muto 武藤 玄 All Rights Reserved,