設計(プログラムの概要)
今回作成する文章読み上げソフトは、以下の条件を備えるものとします。
- ある程度実用的である
- 簡単に作成できる機能のみで構成する
この条件を備えるものとして、以下の4つの機能を実装することにします。
- テキストエリアの文章を読み上げる
- 読み上げを停止する
- Microsoft Agentのプロパティシート(設定ダイアログ)を表示する
- クリップボードからの文字列を取得する
また、これらの機能の実行は、それぞれの機能に対応したボタンを作成することで実現するものとします。
プログラムの作成
プログラム作成の順番は、次の通りとなります。
- 「read_text.hta」の作成 - ボタンやテキストエリアのレイアウト
- Microsoft Agentの利用1 - オブジェクトの埋め込みと初期化
- Microsoft Agentの利用2 - 読み上げと停止
- Microsoft Agentの利用3 - プロパティシート(設定ダイアログ)の表示
- クリップボードから文字列を取得
「read_text.hta」の作成 - ボタンやテキストエリアのレイアウト
まずは、「read_text.hta」という名前の空のテキストファイルを作成します。ファイルを作成する場所はどこでも構いません。例として「C:\CodeZineSample\read_text.hta」などのパスに作成します。また、今回の記事では、この「read_text.hta」以外のファイルは作成しません。
次に、拡張子が「.hta」のファイルが正しく実行できるか確認します。作成した「read_text.hta」をダブルクリックしてください。タイトルバーに、パスが表示され(上記例なら「C:\CodeZineSample\read_text.hta」と表示され)、本体部分に何も表示されないウィンドウが現れれば正しく実行されています。通常のWindowsならば、拡張子が「.hta」のファイルをダブルクリックすれば、このようにウィンドウが現れます。

上記の実行確認が終われば、この「read_text.hta」をテキストエディタで開いてください。まずは、HTMLを記述して、インターフェイスを作成していきます。以下に、記述する内容を示します。
<html> <head> <title>文章読み上げ</title> </head> <body> <form name="f"> <textarea name="ta" rows=20 cols=80> Microsoft Agentを使った文章読み上げソフト </textarea> <br> <br> <input type="button" value="クリップボードから文字列取得" onClick="GetTxt()"> <input type="button" value="テキストエリアを読み上げ" onClick="SpeakTxt()"> <input type="button" value="読み上げを停止" onClick="StopSpeak()"> <br> <br> <input type="button" value="エージェントの設定ダイアログを開く" onClick="OpenOption()"> </form> </body> </html>
各ボタンのonClick属性に記述してある関数は、実際にはまだ「read_text.hta」内には存在しません。これは、以降の記事で作成していきます。textareaのサイズ(rows、cols)は、各自の好みで数字を変えてください。
| ボタン名 | 対応する関数 |
| クリップボードから文字列取得 | GetTxt() |
| テキストエリアを読み上げ | SpeakTxt() |
| 読み上げを停止 | StopSpeak() |
| エージェントの設定ダイアログを開く | OpenOption() |
