【VB.Net】バッチファイルをVBで起動させてみた~やればできる~

どうも!リョクちゃです。

今回は、VB.Netから外部ファイルとしてバッチファイルを

起動させる方法を紹介していきます。

VB.Netでは全てを賄うことはできないことが多々あるため、

どうせなら別のプログラミング言語で処理ファイルを作成し、

そいつらに肩代わりさせようと思ったのがきっかけです。

ちなみに前回の記事はこちら

Excelの拡張子にはバージョンによっては、.xlsや.xlsxであったりと様々な形式があります。手動で操作をしている分にはエラーもなく問題はありませんが、プログラムに処理をさせる時は、拡張子によってうまくいかない、そんなことがあるかと思います。ここでは拡張子を変換し処理しやすい形に変える方法を紹介していきます。



目次

バッチファイルの実行方法

VB.Netから外部ファイルを呼び出すには、

System.Diagnostics.ProcessStartInfoクラスを使用します。

このクラスを使うと、引数やコンソールウィンドウの表示に関する設定も

わかりやすいので便利です。

スポンサーリンク




使い方

使うには、変数を用意しインスタンスを生成します。

Dim 変数名 As System.Diagnostics.ProcessStartInfo = New System.Diagnostics.ProcessStartInfo()

とします。

※本来は、System.Diagnosticsの部分は、インポートで宣言するので省略できますが、

わかりやすいように書いています。

例) 変数名testInfoをProcessStartInfoでインスタンスを生成します。

Dim testInfo As New System.Diagnostics.ProcessStartInfo()

作成した変数の設定をカスタマイズ

バッチファイルの設定

起動したいバッチファイルを設定するには

ProcessStartInfo.FileNameを設定します。

ProcessStartInfo(インスタンス化).FileName = “実行するバッチファイルの絶対パス”

インスタンス化してある必要があります

例)先ほど作成した変数testInfoに起動したいバッチファイルを渡す。

testInfo.FileName = “C:\test.bat”

コンソールウィンドウを開かないようにするには

※プログラム実行中に呼び出したバッチファイルの画面が表示されないようにする設定

ProcessStartInfo.CreateNoWindow = True
ProcessStartInfo.UseShellExecute = False

と設定することでコンソールウィンドウを開かずに、

バッチファイルの呼び出し実行が可能になります。

例) 変数testInfoをコンソールウィンドウが開かないようにする。

testInfo.CreateNoWindow = True

testInfo.UseShellExecute = False

バッチファイルを呼び出す

外部からバッチファイルを呼び出すには、最後に

System.Diagnostics.Process.Start(“ProcessStartInfoで設定した変数”)
とすることで呼び出しが行えます。
例) 変数testInfoを呼び出す。
System.Diagnostics.Process.Start(testInfo)

実例

実際に簡単にフォームを作って試してみます。

※こんなのを作ってみました。

ボタンが押されたら、バッチファイルが起動されるといったフォームになります。

今回、呼び出したいバッチファイルは下記の記事で作成したバッチを使います。

Windowsコマンドとは何か?バッチとは何か?簡単なさわりの部分を紹介し、実際にバッチファイルの簡単な作り方を書いています。Windowsコマンドを使えるようになることで今までの作業の自動化や効率化に結び付けることができたらなと思っています。

このバッチは、単に”Hello World”と出力するファイルになります。

ボタンが押されたら実行するコードは下記になります。

※実行画面を表示したいので、コンソールウィンドウの設定はコメントアウトしています。

実行画面

プログラム起動時

ボタン押下後(test.bat呼び出し時)

ボタンを押すと、バッチファイルを呼び出せることが確認できます。

まとめ

VB.Netから外部ファイルとして、バッチファイルを呼び出す方法を紹介しました。

この方法はバッチファイル以外でも活用できるので、ぜひ使ってみてください。

最後までお読みいただきありがとうございます。

・こちらの書籍を参考にVB.Net勉強しています。

スポンサーリンク