HOME技術ExcelExcel VBAで他のプログラムを実行し処理が終わってから次の処理をする

Excel VBAで他のプログラムを実行し処理が終わってから次の処理をする

CreateObject(“WScript.Shell”).Runを使って他のプログラムを実行する場合、デフォルトだと起動したプログラムの処理が終わる前に次の処理に移ってしまいます。
起動した他のプログラムに処理をさせて、それが終わった後に次の処理をさせたい場合には、以下のように書きます。

CreateObject(“WScript.Shell”).Run “プログラムの実行” , , True

最後に「True」という引数を与えると、その処理が終了してから次の処理に移るようになります。

関連記事

Excel VBAで他のプログラムを実行する際にウィンドウを最小化する

Excel VBAで他のプログラムを実行した際に、実行しているプログラムのウィンドウを最小化表示にする方法です。 CreateObject(“WScript.Shell”).R…続きを読む

Excelで起動時にフォームのみ表示する

Excelで起動時にフォームを表示し、Excelそのものの表画面は非表示にする方法です。 起動時にフォームを表示する 「開発」→「コードの表示」から「Microsoft Visual Basic fo…続きを読む

Excel VBA:特定のシートをコピーして別ブックを生成する

Excel VBAで、特定のシートの値をすべてコピーして、新しい別のExcelブックを生成してそのシートに貼りつけます。 なお、ブックを生成した後は、各自で保存します。 コード Worksheets(…続きを読む

Excel VBA:フィルタを操作して絞り込む

Excel VBAでフィルタ操作をして、行を絞り込みむ方法です。 コード Sub autoFilter(Retsu, Atai) Worksheets(“シート名”).Rang…続きを読む

Excel:「このファイルのソースが信頼できないため、Microsoftによりマクロの実行がブロックされました」と表示される

メールに添付されたマクロ付きExcelファイルを開いたところ、 「このファイルのソースが信頼できないため、Microsoftによりマクロの実行がブロックされました」と表示され、マクロが実行できなくなっ…続きを読む

Excelでワークシートを追加しようとすると「名前が変更されたか、移動や削除が行われた可能性があります」というエラーが表示される

Excelでワークシートを追加しようとしたら、「****\ワークシート.xlsxが見つかりません。名前が変更されたか、移動や削除が行われた可能性があります。」と表示されて、ワークシートを追加することが…続きを読む

Excel VBA:指定した列を非表示にする

Excel VBAで、予め指定した列を非表示にします。 コード hiddenColumn = Array(3, 4, 5, 6) For i = 0 To UBound(hiddenColumn) W…続きを読む

Excelで指定行おきに色をつける

Excelの行に、1行おきに色を付けたい、2行おきに色を付けたい、というときの方法です。 まず、色を付ける範囲を指定します。 次に、メニューから「ホーム」→「条件付き書式」→「新しいルール」をクリック…続きを読む

Excel:改行を含むテキストを置換する

Microsoft Excelで、セルの中で改行しているテキストを置換する方法です。 以下のように、 あああ いいい という改行を含むテキストを「おおお」というテキストに置換します。 改行を含めたテキ…続きを読む

Excel VBA:メールを送信する

Excel VBAからメールを送信するボタンをつくります。 パスワードロックをかけたブックを利用していて、パスワードがわからなくなったらメールを送信してパスワードを教える機能を付けようと思い、調べまし…続きを読む