- ベストアンサー
エクセルのVBAまたはVisualBasicでパソコンのショートカットを操作する方法
- エクセルのVBAまたはVisualBasicで、パソコンのショートカットを操作する方法について相談です。
- 連番のテキストファイルを「softalk」に読み込み対応する連番の音声ファイルに変換するために、エクセルを使用しています。
- 具体的には、エクセルで「元ファイル名」を作成し、それを「softalk」に貼り付けてファイルを開き、音声ファイルを作成します。VBaまたはVisualBasicを使用して、この作業を自動化する方法について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
素晴らしい フリーソフト を教えていただきまして、ありがとうございました。 ただいま、ダウンロード して、softalk の readme.txt を開いてみますと、 '------------------------------------------------------- 【機能説明】 引数に文章/オプションを指定すれば自動で読み上げを開始するので、他のアプリケーションから呼び出して使用することもできます。 【引数指定】 ●「引数をファイル名/オプションとして処理する」にチェックすると、引数から以下のような操作が行えます。 〇次のように指定すると、テキストファイルを読み上げます。 "C:\SofTalk.exe" テキストファイルのパス 〇オプションには設定オプションと実行オプションがあります。 ○設定オプションの種類は次の通りです。 /R:録音 録音先のパス ○実行オプションの種類は次の通りです。 [順次実行オプション] /close 終了 '------------------------------------------------------- と出ております。 ということで、コマンドライン から "{SofTalk.exe の インストール先 フルパス}" D:\hoge\hoge.txt /R:D:\hoge\hoge.wav "{SofTalk.exe の インストール先 フルパス}" /close を連続して実行することにより、 1)SofTalk.exe を起動 2)D:\hoge\hoge.txt を読み上げ 3)D:\hoge\hoge.wav として保存 4)(3) の終了後、SofTalk.exe を終了 という一連の動作を行なうことができました。 なお、SofTalk.exe の [オプション(O)] - [環境設定(S)] で、[設定] ダイアログ を開き、[その他] タブ の ・引数をファイル名/オプションとして処理する ・録音時は読み上げを省略する に チェック を入れておきます。 さて、エクセル の VBA で コマンド を実行するには、[Shell 関数] を用いて、 Dim RetVal RetVal = Shell("C:\WINDOWS\CALC.EXE", 1) ' 電卓を実行します。 というような使い方をします([Shell 関数] の ヘルプ 参照)。 ということで、お尋ねの内容でしたら、下記のようなことになろうかと存じます。 Sub test() Const SofTalk As String = "c:\Program Files\softalk\SofTalk.exe" Dim RetVal As Double ChDir "D:\hoge" Workbooks.Open Filename:="D:\hoge\hoge.xls" RetVal = Shell(SofTalk, vbMinimizedNoFocus) Do ここで「元ファイル名」と「作成ファイル名」を取得する操作 RetVal = Shell(SofTalk & " " & 元ファイル名 & " /R:" & 作成ファイル名, vbMinimizedNoFocus) If ~~ Then Exit Do Loop RetVal = Shell(SofTalk & " /close", vbMinimizedNoFocus) ActiveWorkbook.Close End Sub
その他の回答 (1)
- osu_neko09
- ベストアンサー率48% (56/115)
1.VisualbasicのSendKey命令は考慮されたのでしょうか? 2.「softalk」に戻って「録音」ボタンを押す操作は、キーボードだけでできるのですか? 3.マウス操作およびキーボード操作を自動化するソフトがいくつかありますが、そういうソフトではダメですか? 4.連番のテキストファイルの中身、というのは001,002,003とかでしょうか? エクセルで連番を作成しておいて、各行に元ファイル名と作成ファイル名を書き出せませんか?以下のように・・・。 001 read001.sound write001.music 002 read002.sound write002.music
お礼
GW休暇が入ってしまい、返答遅れまして申し訳ありません。 「キーボード操作を自動化するソフト」というところは今まで発想がなかったので、ありがたい情報でした。 それをどう絡めて行くかということは今後の課題にしたいと思います。 正直、VBに詳しい訳ではないので半分ほども理解できていませんが、時間を掛けて 教えていただいた事を身につけていこうかと思っております。 この度はどうも有難う御座いました。
お礼
GW休暇が入ってしまい、返答遅れまして申し訳ありません。 自分で使っているソフトの説明書きをろくに読まずに、質問をしてしまっていた様で 大変恥ずかしく思っております。 さて、お教え頂いた方法を用いたところ、思った以上の効果を得る事ができ、大変感謝しております 実際に使ってみて思ったことは、VBAの処理速度と「softalk」の処理速度が違うので、VBAの方の 処理が直ぐに終わってしまい、「softalk」の方はバッファ処理されているようで、ちょっと 面白いなと感じました。 何はともあれ、懇切丁寧に教えて頂き感謝の限りです どうもありがとう御座いました。