2015年5月9日土曜日

複数のエクセルファイル から 条件に合ったもの を 開く バッチ_02

◆前回記事に、ファイル0件時の処理を追加しました。

特定ディレクトリにある 一個以上のエクセルファイルから 更新日付が最新のものを開くための バッチプログラム

仕様
ターゲットディレクトリは、バッチファイル内に直書きする
更新日付が最新のエクセルファイルを開く…としているが、DIRコマンドのオプションで変更可能

↓↓↓ここから↓↓↓↓↓↓↓
@echo off
:: -------------------------------------------------------------------
:: エクセルファイルのオープン
:: -------------------------------------------------------------------

:: ローカルPCのエクセルパスを設定する
set      work_ExcelProgramPath=C:\Program Files\Microsoft Office\………\EXCEL.EXE

:: ターゲットディレクトリを設定する
set      work_FolderPath=\\………\………\………\

:: ターゲットディレクトリにあるエクセルファイル名(一個以上)を取得する。ソート順は更新日付の直近順
:: ソート結果はテキストファイルに書き出す
dir  /b  /o-d  "%work_FolderPath%"*.xls  >  tempExcelFileNameList.txt

if NOT %ERRORLEVEL%==0 goto FILE_NOT_EXIST


:: 取得したエクセルファイル名(一個以上)から
:: 更新日付が最も新しいエクセルファイル名のみ設定する。
:: ※この場合、複数行のエクセルファイル名が SETコマンドにリダイレクトされる可能性があるが
::   SETコマンドは、改行コードを検出した時点で文字列の取り込みを中止するので、問題は起きない
set  /p  work_FileNameToOpen=  <  tempExcelFileNameList.txt


:: 絶対パスを作成して、設定する
set      work_FullPathOfFile=%work_FolderPath%%work_FileNameToOpen%

:: startコマンドの第一引数は、ウインドウタイトルと見なされるので、ダミーを設定しておく
start  ""  "%work_ExcelProgramPath%"  "%work_FullPathOfFile%"

goto OWARI

:: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
:FILE_NOT_EXIST

color 0E
echo エクセルファイルが(作業のため?)一時的に移動されているようです
echo しばらくして、該当フォルダの中を確認してみてください
echo :
echo :
echo :
echo この画面を閉じますから、何かキーをおしてください
pause > NUL

:: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
:OWARI

echo on

↑↑↑ここまで↑↑↑↑↑↑↑