音声アラームの追加について

このQ&Aのポイント
  • 音声付のアラームを作成する方法として、OpenFileDialogを利用して選択されたWavまたはmp3ファイルを再生することがあります。
  • 質問者はCheckBox3_CheckedChangedメソッドを使用してsudAlarmメソッドを呼び出しています。
  • しかし、エラーが発生しているようで、指定されたファイルが存在しないというエラーメッセージが表示されています。
回答を見る
  • ベストアンサー

音声アラームの追加について

素人の質問が以下のとおりです。 音声付のアラームを作っています。 機能として、OpenFileDialogを利用して、選択されたWavもしくmp3ファイルを再生することです。 ソースコードは以下のとおりです。 Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged Call sudAlarm() End Sub Sub sudAlarm() Dim value As String Dim ofd As New OpenFileDialog() ofd.InitialDirectory = "C:\" ofd.Filter = "音声ファイル|*.wav|音声ファイル(*.mp3)|*.mp3" ofd.FilterIndex = 2 ofd.RestoreDirectory = True If ofd.ShowDialog() = DialogResult.OK Then value = ofd.RestoreDirectory My.Computer.Audio.Play(value) 'My.Computer.Audio.Play(value,AudioPlayMode.BackgroundLoop) 'My.Computer.Audio.Stop() End If End Sub 結果は My.Computer.Audio.Play(value)にエラーがあってうまくいけませんでした。 エラー内容は”指定されたファイルが存在していない”ような内容です。 もちろん、ファイルがちゃんとおきました。 以上、宜しくお願いします。

  • xlhjp
  • お礼率56% (81/144)

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

  • ベストアンサー
  • nishito24
  • ベストアンサー率90% (10/11)
回答No.1

> value = ofd.RestoreDirectory ↓ value = ofd.FileName でどうでしょうか。

xlhjp
質問者

お礼

ご回答ありがとうございました。 問題を解決されました。(^@^)

関連するQ&A

  • VB2008でテキスト以外のファイルの開き方について

    現在VB2008環境でファイル操作ができるソフトを開発中です。 openfiledialogでファイルを選択して開く、といったことがしたいと思い、以下のようにやってみました。 Dim ofd As New OpenFileDialog() ofd.FileName = FN ofd.InitialDirectory = DN ofd.FilterIndex = 2 ofd.Title = "" ofd.RestoreDirectory = True ofd.CheckFileExists = True ofd.CheckPathExists = True If ofd.ShowDialog() = DialogResult.OK Then Dim FO As Object FO = Shell(ofd.InitialDirectory + ofd.FileName, vbNormalFocus) End If FN,DNは他で指定したファイル、ディレクトリの名前です。 これでデバック実行すると「FileNotFoundExceptionはハンドルされませんでした」というエラーが出て開けませんでした。 VBでのソフト開発自体はじめて間もない為理解していない部分も多く説明も至ってはいないと思いますが、どうかよろしくお願いします。

  • Visual Basic 2005で困ってます

    「ファイルを開く」ダイアログを表示して 画像ファイルを選択し、そのファイルをPictureboxに表示させたいのですが 画像が表示されずエラーが出てしまいます。 Private Sub 開くOToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 開くOToolStripMenuItem.Click Dim ofd As New OpenFileDialog() ofd.FileName = ""   ofd.InitialDirectory = "デスクトップ"       ofd.Filter = _ "すべてのピクチャーファイル(*.jpg;*.jpeg)|*.jpg;*.jpeg|すべてのファイル(*.*)|*.*"   ofd.FilterIndex = 2 ofd.Title = "開くファイルを選択してください" ofd.RestoreDirectory = True ofd.CheckFileExists = True ofd.CheckPathExists = True If ofd.ShowDialog() = Windows.Forms.DialogResult.OK Then Console.WriteLine(ofd.FileName) lstFileName.Items.Add(ofd.FileName) End If このようなプログラムなのですが どのように変えたらよろしいでしょうか? 教えてください、よろしくお願いします。

  • VB2010でCSV取込

    VB2010とAccessを使用しています。 あるCSVファイルからACCESSへデータ取り込みをしようとして CSVをデータテーブルに代入するコードを考えているのですが 下記のコードでは『FROM句』のエラーのようでうまく作動しません? ご教授お願いします。 Private Sub ToolMenu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolMenu.Click Dim OFD As New OpenFileDialog OFD.FileName = "" OFD.InitialDirectory = "\\10.20.100.35\data\LOG\" OFD.Filter = "CSVファイル(*.csv)|*.csv|すべてファイル(*.*)|*.*" OFD.FilterIndex = 1 OFD.Title = "取り込むCSVファイルを選択してください" OFD.RestoreDirectory = True OFD.CheckFileExists = True OFD.CheckPathExists = True If OFD.ShowDialog() = DialogResult.OK Then Try Dim DT As New DataTable '===============CSVからクエリ=============== Using OleCn As New System.Data.OleDb.OleDbConnection Dim CSVFileName As String = System.IO.Path.Combine(OFD.InitialDirectory, "aaa.csv") OleCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & OFD.InitialDirectory & _ ";Extended Properties=""Text;HDR=YES;IMEX=1;FMT=Delimited""" Dim SQL As String = "" SQL = "SELECT * FROM " + CSVFileName Using DA As System.Data.OleDb.OleDbDataAdapter = _ New System.Data.OleDb.OleDbDataAdapter(SQL, OleCn) DT.Clear() DA.Fill(DT) End Using End Using Catch ex As Exception MessageBox.Show(ex.ToString, "例外発生") Exit Sub End Try End If End Sub

  • ファイルダイアログのカレントフォルダ

    vb.netのOpenFileDialogでダイアログを開いたとき、最初はマイドキュメントが表示されますが 違うフォルダからファイルを選ぶと、次にダイアログを開いたときはそのフォルダ(カレントフォルダ?)がまず表示されます。 その情報はどこに保存されてるのですか? 同じパソコンでプログラムをコピーして交互に動かしてもカレントフォルダはその度に変わってるようです。 別のパソコンにプログラムをコピーしたら(最初だけは)マイドキュメントからになるんですか? もう1つ質問で RestoreDirectoryプロパティにtrueを設定してもカレントフォルダは変わるようなのですが なぜでしょう? 試しに作ったコードは↓です。 環境はvb2005、XP-sp3です。 -------------------- Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' OpenFileDialog の新しいインスタンスを生成する (デザイナから追加している場合は必要ない) Dim OpenFileDialog1 As New OpenFileDialog() ' ダイアログボックスを閉じる前に現在のディレクトリを復元する (初期値 False) OpenFileDialog1.RestoreDirectory = False ' ダイアログを表示し、戻り値が [OK] の場合は、選択したファイルを表示する If OpenFileDialog1.ShowDialog() = DialogResult.OK Then MessageBox.Show(OpenFileDialog1.FileName) End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ' OpenFileDialog の新しいインスタンスを生成する (デザイナから追加している場合は必要ない) Dim OpenFileDialog2 As New OpenFileDialog() ' ダイアログボックスを閉じる前に現在のディレクトリを復元する (初期値 False) OpenFileDialog2.RestoreDirectory = True ' ダイアログを表示し、戻り値が [OK] の場合は、選択したファイルを表示する If OpenFileDialog2.ShowDialog() = DialogResult.OK Then MessageBox.Show(OpenFileDialog2.FileName) End If End Sub End Class --------------------

  • [C#] OpenFileDialogによって得られた'Filenam

    [C#] OpenFileDialogによって得られた'Filename'を、Sting型にするには? OpenFileDialogの処理をクラスにまとめて、そこから得られた文字列を返したいと思います。 --------------------------------------------------- class GetFileName { public void OpenFileDialog(StringBuilder name) { //OpenFileDialogクラスのインスタンスを作成 OpenFileDialog ofd = new OpenFileDialog(); ofd.FileName = "sd.zip"; ofd.InitialDirectory = @"C:\"; ofd.Filter = "ZIP Failes(*.zip;*.zi_)|*.zip;*.zi_|All Files(*.*)|*.*"; ofd.FilterIndex = 1; //タイトルを設定する ofd.Title = "Please select the opening file."; ofd.RestoreDirectory = true; ofd.CheckFileExists = true; ofd.CheckPathExists = true; //ダイアログを表示する if (ofd.ShowDialog() == DialogResult.OK) { //OKボタンがクリックされたとき //選択されたファイル名を表示する Console.WriteLine(ofd.FileName); name = ofd.FileName;         <<<--- ここでエラーになる } } } //呼び出し元 public partial class Form1 : Form { public Form1() { InitializeComponent(); } // //  ボタン // private void buttonDec_Click(object sender, EventArgs e) { StringBuilder fname = new StringBuilder(256); GetFileName gf; gf = new GetFileName(); //インスタンス化 gf.OpenFileDialog(fname); Console.WriteLine(fname); // } } どのようにすれば、得られた文字列を戻すことが出来ますか。 以上、よろしくお願いします。

  • PreviewKeyDownイベントが2回発生する

    現在WindowsXP上でVB2005で開発を行っています。 タイトルの通りなのですがPreviewKeyDownイベントが2回発生してしまって困っています。簡易なコードを下記に記します。 Private Sub WebBrowser1_PreviewKeyDown(ByVal sender As Object,ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs)Handles WebBrowser1.PreviewKeyDown My.Computer.Audio.Play(" My.Computer.Audio.Play("C:\WINDOWS\Media\Windows XP Shutdown.wav", AudioPlayMode.WaitToComplete) End Sub というコードを書いたところ、WEBブラウザ上で何かキーを押すと2回、waveファイルが再生されてしまいます。違うwaveファイルでも試しましたが同じでした。ですのでファイルの長さ等は関係ないようです。 原因はpreviewKeyDown以外に考えられないのですが、対処法がわかりません。何かよいアイデアはないでしょうか?

  • VB2008EEのラジオボタンのチェック無し

    VB2008EEのラジオボタンのチェック無し     4つにチェックを入れてしまうと、全ての変数に値が入ってしまい、ボタンクリック時にチェックが 入っていないのを含めて、batファイル4つとも実行されてしまいます。 チェックボックスだと、下記でチェックされていないもの値を変えられます。 If CheckBox1.CheckState = CheckState.Unchecked Then   aaa = "9" End If ラジオボタンでチェックされていない所の変数を変える事は出来るでしょうか? Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If (aaa = "1") Then Shell("cmd /c xxx.bat", AppWinStyle.NormalFocus, True) End If If (bbb = "2") Then Shell("cmd /c yyy.bat", AppWinStyle.NormalFocus, True) End If If (ccc = "3") Then Shell("cmd /c zzz.bat", AppWinStyle.NormalFocus, True) End If If (ddd = "4") Then Shell("cmd /c www.bat", AppWinStyle.NormalFocus, True) End If End Sub Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged aaa = "1" End Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged bbb = "2" End Sub Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged ccc = "3" End Sub Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged ddd = "4" End Sub

  • vb txtファイル名に年月日、日時を追加する方法

    こんにちは、現在visual studio 2013 で勉強をしている初心者です。現在CSVデータの取り込みの際、重複した値をtxtファイルに保存しているのですがそのファイル名に「年月日、日時」を追加したいのですがやり方がわかりません。教えていただきたいです。 重複リスト.txt 2019/7/26 10:00みたいなのをイメージしているのですが・・・ 以下にソースを貼っておきます。 Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button_torikomi.Click 'OpenFileDialogクラスのインスタンスを作成 Dim ofd As New OpenFileDialog() Dim strSQL As String = Nothing Dim DT As New DataTable Dim clsdb As CLS_db 'クラスの呼び出し SQL接続 clsdb = New CLS_db 'はじめに表示されるフォルダを指定する ofd.InitialDirectory = "C:\" '[ファイルの種類]に表示される選択肢を指定する ofd.Filter = "CSVファイル(*.csv;*.csv)|*.csv;*.csv|すべてのファイル(*.*)|*.*" '[ファイルの種類]ではじめに選択されるものを指定する '2番目の「すべてのファイル」が選択されているようにする ofd.FilterIndex = 0 'タイトルを設定する ofd.Title = "開くファイルを選択してください" 'ダイアログボックスを閉じる前に現在のディレクトリを復元するようにする ofd.RestoreDirectory = True ofd.CheckFileExists = True ofd.CheckPathExists = True 'ダイアログを表示する If ofd.ShowDialog() = DialogResult.OK Then 'OKボタンがクリックされたとき、選択されたファイル名を表示する Console.WriteLine(ofd.FileName) Dim sr As New System.IO.StreamReader(ofd.FileName, _ System.Text.Encoding.GetEncoding("shift_jis")) '内容を一行ずつ読み込む Dim sw As String = sr.ReadLine() While sr.Peek() > -1 Dim s As String = sr.ReadLine() Dim parts As String() parts = Split(s, ",") strSQL = "SELECT カナ氏 FROM 従業員登録 WHERE 従業員コード = " & parts(0) & "" '重複処理 DT = clsdb.GetDataTable(strSQL) If DT.Rows.Count > 0 Then 'Shift JISで書き込む Dim swt As New System.IO.StreamWriter("C:\test\重複リスト.txt", _ True, _ System.Text.Encoding.GetEncoding("shift_jis")) '重複リスト.txtの内容を書き込む() swt.Write(parts(0)) swt.Write(","c) swt.Write(parts(1)) swt.Write(","c) swt.Write(parts(2)) swt.Write(","c) swt.Write(parts(3)) swt.Write(","c) swt.Write(parts(4)) swt.Write(","c) swt.Write(parts(5)) swt.Write(","c) swt.Write(parts(6)) swt.Write(","c) swt.Write(parts(7)) swt.Write(","c) swt.Write(parts(8)) swt.Write(","c) swt.WriteLine(parts(9)) '閉じる() swt.Close() Else strSQL = "INSERT INTO 従業員登録(従業員コード,カナ氏,カナ名,氏,名,性別,生年月日,入社日,部署,PASSWORD) VALUES ( '" & parts(0) & "','" & parts(1) & "','" & parts(2) & "','" & parts(3) & "','" & parts(4) & "','" & parts(5) & "','" & parts(6) & "','" & parts(7) & "', '" & parts(8) & "','" & parts(9) & "')" Try clsdb.Execute(strSQL) Catch ex As Exception MessageBox.Show(ex.Message) End Try End If MsgBox(strSQL) End While '閉じる sr.Close() If DT.Rows.Count > 0 Then MsgBox("従業員コードが同じです", MessageBoxIcon.Warning, "重複エラー") Else MsgBox("追加しました。", MessageBoxIcon.Asterisk, "追加") End If End If '更新テーブル再読み込み 'SQL構文を指定します。 strSQL = "select * from 従業員登録" '即反映 Try clsdb = New CLS_db DT = clsdb.GetDataTable(strSQL) 'データグリッドビューのデータソースを設定 Me.DataGridView1.DataSource = DT Catch ex As Exception MessageBox.Show(ex.Message) End Try DataGridView1.ReadOnly = True '元に戻す Me.Cursor = Cursors.Default End Sub End Class

  • VB2008EEのラジオボタンのチェック無し

    VB2008EEのラジオボタンのチェック無し     4つにチェックを入れてしまうと、全ての変数に値が入ってしまい、ボタンクリック時にチェックが 入っていないのを含めて、batファイル4つとも実行されてしまいます。 チェックボックスでも同じような記述をしていまして、下記の記述でチェックされていないものの値を変えられます。 If CheckBox1.CheckState = CheckState.Unchecked Then   aaa = "9" End If Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If (aaa = "1") Then Shell("cmd /c xxx.bat", AppWinStyle.NormalFocus, True) End If If (bbb = "2") Then Shell("cmd /c yyy.bat", AppWinStyle.NormalFocus, True) End If If (ccc = "3") Then Shell("cmd /c zzz.bat", AppWinStyle.NormalFocus, True) End If If (ddd = "4") Then Shell("cmd /c www.bat", AppWinStyle.NormalFocus, True) End If End Sub Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged aaa = "1" End Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged bbb = "2" End Sub Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged ccc = "3" End Sub Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged ddd = "4" End Sub レベル低いといきなりラスボスは倒せないので、目先のミッションクリアが目的です。 応用は後々学んで行きます。 「ラジオボタンでチェックされていない所の変数を変える事は出来るでしょうか?」  

  • VB2008EEのラジオボタンのチェック無し

    VB2008EEのラジオボタンのチェック無し     4つにチェックを入れてしまうと、全ての変数に値が入ってしまい、ボタンクリック時にチェックが 入っていないのを含めて、batファイル4つとも実行されてしまいます。 チェックボックスでも同じような記述をしていまして、下記の記述でチェックされていないものの値を変えられます。 If CheckBox1.CheckState = CheckState.Unchecked Then   aaa = "9" End If Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If (aaa = "1") Then Shell("cmd /c xxx.bat", AppWinStyle.NormalFocus, True) End If If (bbb = "2") Then Shell("cmd /c yyy.bat", AppWinStyle.NormalFocus, True) End If If (ccc = "3") Then Shell("cmd /c zzz.bat", AppWinStyle.NormalFocus, True) End If If (ddd = "4") Then Shell("cmd /c www.bat", AppWinStyle.NormalFocus, True) End If End Sub Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged aaa = "1" End Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged bbb = "2" End Sub Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged ccc = "3" End Sub Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged ddd = "4" End Sub レベル低いといきなりラスボスは倒せないので、目先のミッションクリアが目的です。 応用は後々学んで行きます。 「ラジオボタンでチェックされていない所の変数を変える事は出来るでしょうか?」

専門家に質問してみよう