マクロからのDOS(Microsoft Excel)
マクロは、Excelなどのプログラムの機能を拡張するための素晴らしい方法です。ただし、マクロからDOSバッチファイルを実行して、その機能をさらに拡張することもできます。 Excelでは、シェルコマンドを使用してこれを行うことができます。コマンドの一般的な構文は次のとおりです。
dRetVal = Shell("myfile.bat", mode)
引用符内に、実行するファイルのフルパス名とファイル名を配置できます。一部のシステムでは、ファイル指定でパス名を使用すると問題が発生する場合があります。 (複雑なパス名がある場合、またはパス名にスペースが含まれている場合、これは醜い頭を切り取るようです。)この問題がある場合は、Excelで使用されるディレクトリを変更するために、シェルの直前にChDirコマンドを使用します。その後、ファイル名だけを使用してシェルを実行できます。
モードインジケータは、ファイルを表示するためにウィンドウを開く方法をExcelに指示するだけです。モードインジケータは、次のいずれかになります。
Value |
Variable Nam |
Meaning |
||
0 |
vbHide |
Window is hidden and has focus. |
||
1 |
vbNormalFocus |
Window is the normal size and has focus. |
||
2 |
vbMinimizedFocus |
Window is minimized and has focus. |
||
3 |
vbMaximizedFocus |
Window is maximized and has focus. |
||
4 |
vbNormalNoFocus |
Window is normal size, but doesn’t have focus. |
||
6 |
vbMinimizedNoFocus |
Window is minimized, but doesn’t have focus. |
Shellコマンドは、実行したファイルのプログラムIDを示す値を返すか、ゼロを返します。ゼロが返された場合は、ファイルの実行中にエラーが発生しました。
Shellを使用すると、ターゲットファイルがすぐに実行され、Excelとは独立して実行されることに注意してください。これは、Excelマクロの次のマクロコマンドが、シェルターゲットファイルの終了を待たずにすぐに実行されることを意味します。この動作を回避する方法が必要な場合は、ChipPearsonのWebサイトのこのページに興味があるかもしれません:
http://www.cpearson.com/excel/ShellAndWait.aspx
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]
。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(9843)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。
link:/ excel-DOS_From_Macros [DOS FromMacros]
。