• ベストアンサー

ラベルの文字列を読み上げたい

使用ソフトウェア Microsoft Visual Basic 2005 Express ラベルに書かれている英語を読み上げる機能を追加したいのですが、どうやったらいいかさっぱりわかりません。。 まずspeech機能?を追加しなきゃいけなかった気がするのですが・・ なんという機能を追加したらいいかと、読み上げるコードのサンプルを教えて頂けると助かります。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

面白そうなので試しに作ってみました。 EXCELを使うと簡単に出来ます。 EXCELのOpen,Closeは、 http://www.bcap.co.jp/hanafusa/dotnet/Excel01.htm を参考にさせていただきました。 声は、コントロールパネルの音声認識の音声合成で変更します。 日本語も可能です。 Public Class Form1 Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click Call test() End Sub Sub test() Dim xlApp As Object = CreateObject("Excel.Application") Dim xlBooks As Object = xlApp.Workbooks Dim xlBook As Object = xlBooks.Add Dim xlSheets As Object = xlBook.Worksheets Dim xlSheet As Object = xlSheets.Item(1) xlApp.Visible = False 'True xlApp.Speech.Speak("Good morning.") xlApp.Speech.Speak("Hello.") xlApp.Speech.Speak("Good evening.") xlApp.Speech.Speak("I wish you sweet dreams!") xlApp.Speech.Speak("Good-bye.") MRComObject(xlSheet) 'xlSheet の解放 MRComObject(xlSheets) 'xlSheets の解放 xlBook.Close(False) 'xlBook を閉じる MRComObject(xlBook) 'xlBook の解放 MRComObject(xlBooks) 'xlBooks の解放 xlApp.Quit() 'Excelを閉じる MRComObject(xlApp) 'xlApp を解放 End Sub Private Sub MRComObject(ByRef objCom As Object) 'COM オブジェクトの使用後、明示的に COM オブジェクトへの参照を解放する Try '提供されたランタイム呼び出し可能ラッパーの参照カウントをデクリメントします If Not objCom Is Nothing AndAlso System.Runtime.InteropServices. _ Marshal.IsComObject(objCom) Then Dim I As Integer Do I = System.Runtime.InteropServices.Marshal.ReleaseComObject(objCom) Loop Until I <= 0 End If Catch Finally '参照を解除する objCom = Nothing End Try End Sub End Class

参考URL:
http://www.bcap.co.jp/hanafusa/dotnet/Excel01.htm
j-y-a
質問者

お礼

お礼が遅くなってしまい申し訳ありませんでした。 また、とてもご丁寧に回答を書いていただきありがとうございました。

関連するQ&A