こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

VBの音声ファイルの格納について

参考にしている資料に
MMControl1.FileName = fstrvoice + "spk0.wav"
というのがあるのですが、これを.Net環境で打ち込むとfstrvoiceが宣言されていない、というエラーになってしまいます。
教授からの説明によると、fstrvoiceは宣言の必要が無く、そこにファイルの情報が格納されていて、そのファイルにspk0.wavと名前をつけているそうなのです。
これと同じことを.Net環境で行うためにはどのようにしたら良いでしょうか。
よろしくお願いします。

投稿日時 - 2004-07-24 13:23:52

QNo.937888

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(4)

念のためこいつをぺたぺた。
http://dobon.net/vb/dotnet/vb6/apppath.html

投稿日時 - 2004-07-25 13:07:24

ANo.3

.netは未経験ですので、間違ってたらごめんなさい。

FileNameというからには、fstrvoiceには"c:\winnt\"のようなファイルパスを表す文字列が入るような気がします。
これなら『そこにファイルの情報が格納されていて、』の部分に合致しますよね。

そう考えた場合、No.1、No.2の方も仰られている通り、fstrvoiceをString型の変数として宣言し、ファイルパスを代入してやればよいと思います。

exeファイルと同じ場所にspk0.wavという音声ファイルがあると仮定すると、App.Pathを利用して以下のようになります。

Dim fstrvoice As String
fstrvoice = App.Path & "\"

投稿日時 - 2004-07-24 21:07:12

お礼

有難うございました。
fstrvoiceにはファイルのパスではなく、音声情報が入っているらしいんです・・・とりあえず別の方法を考えて見ます。

投稿日時 - 2004-07-26 16:38:48

問題解決のための話ではありませんが
>変数は必ず宣言する癖をつけましょう。
について補足します

http://homepage1.nifty.com/CavalierLab/lab/vb/implicit.html
-------------------
タイプミスによる例を挙げると
Public InternetID as Integer

Private Sub Command1_Click()
InternetID = InternetID
End Sub

Private Sub Command2_Click()
InternatID = InternetID + 1
End Sub

コマンドボタンが二つあり、
どちらをクリックしても、InternetIDの値が増えるように
組んだ・・・はずです。

実際「コンパイルが通ってしまう」ので
うまくいくかと思いきや
Command2の中、Intern"a"tIDになってます。
ローカル変数InternatIDが自動的に確保され、
代入されているので、InternetIDの値が変化しません

変数の宣言を強制しておけば、これらのタイプミス
があったばあいにコンパイラが
「変数Internatが定義されていないよ?」と怒ってくれます

VB.NETでは宣言が必須だったと思います
-------

投稿日時 - 2004-07-24 16:00:20

お礼

有難うございました。
宣言はするようにしているのですが、今回は宣言の必要がないと言われていたのであえてしませんでした・・・
fstrvoiceは無視して行こうと思います。

投稿日時 - 2004-07-26 14:10:18

ANo.1

変数は必ず宣言する癖をつけましょう。
なので、fstrvoiceも宣言すればいいだけです。
使わないならば外せば良いと思います。

結局MMControl1.FileName="spk0.wav"となります。
ファイル名を指定する場合、PGの全体からファイル名を検索して変更する必要が無いように、ファイル名を格納する変数を用いるのが常識です。
この場合はMMControl1.FileNameがファイル格納変数となります。

投稿日時 - 2004-07-24 13:37:35

お礼

有難うございました。
参考にさせていただきます。

投稿日時 - 2004-07-26 14:07:43

あなたにオススメの質問