◆前回記事に、ファイル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
↑↑↑ここまで↑↑↑↑↑↑↑