しょぼいエンジニアの時短術 vol1. ストレスフリーな「EXCEL新規作成」


EXCELのブックを新規作成して名前をつけて開くのを簡略化する。

エンジニアだとソースコードを書くだけでなく、EXCELファイルを作成することは多いと思います。
EXCEL起動はショートカット設定しておけばいいけど、問題は名前をつけるのがあとまわしになることで、書いたはいいけど、閉じるときにどこに保存するか名前どうするか迷うことないですか?

「新しいファイル」みたいな適当な名前をマイクロソフトが勝手につけてくれますが、以下のフローがやりやすい人が大多数だからだと思います。で、保存するページは毎回選べと。
1. EXCELを起動
2. なにか作業する
3. どこに保存するか決める
4. 名前をつける
5. 保存する

ですが、自分的には以下のフローのほうがいいなと思いました。
1. どこに保存するか決める(決めておく)
2. 名前をつける
3. EXCELを起動
4. なにか作業する
5. 保存する

なぜなら、作業やるときに、その作業を「何をやるか」を意識するために名前をつけるべきだと思います。
ファイル名は作業の内容を端的に表します。
でも、officeの標準はそうなっていないので、それを矯正付けるためにプログラムに頼ろうということで、バッチを書きました。

ソースコード

create_new_excel.bat
@echo off
REM  set dir
set /p NEW_FILE_NAME="enter new excel file name: "
set NEW_FILE_DIR=C:\tmp\work\doc
set BASE_FILE=C:\tmp\src\run_office\template.xlsx
set dt=%date%
set tm=%time%

REM new filename is {entering new name}_YYYYMMDD.xlsx
set NEW_FILE_FULLNAME=%NEW_FILE_NAME%_%date:~0,4%%date:~5,2%%date:~8,2%.xlsx

REM if you want {entering new name}_YYYYMMDD_HHMMSS.xlsx, use this
REM set NEW_FILE_FULLNAME=%NEW_FILE_NAME%_%date:~0,4%%date:~5,2%%date:~8,2%_%tm:~0,2%%tm:~3,2%%tm:~6,2%.xlsx

REM check saving change option /-Y
copy /-Y %BASE_FILE% %NEW_FILE_DIR%\%NEW_FILE_FULLNAME%

echo "NEW FILE NAME:"
echo %NEW_FILE_DIR%\%NEW_FILE_FULLNAME%

REM Run Excel.exe new file
"C:\{directory in your office exe}\EXCEL.EXE" %NEW_FILE_DIR%\%NEW_FILE_FULLNAME%

exit

解説

前準備

4,5行目で、保存するフォルダ(予め決めておく、私は一時フォルダのworkにどんどん投げ込みあとで整理することにしています)とコピーするテンプレートのファイル。自分はシートもたくさんあると邪魔なので、1シートだけにした空のエクセルファイルをおいておきます。

ファイル名

9行目では、入力したファイル名に今日の日付をつけます。11行目に、年月日時分秒の場合をつけたので好きな方を使いましょう

EXCEL起動

EXCELの起動は.exeを直接叩くかたちにします。

文字コード

自分はvisual studio codeのエディターを使っていて基本、UTF-8のファイルにしていますが、普通はコマンドプロンプトはSHIS-JISの方がお多いと思います(自分もそうです)。で、コメントやechoがバグらないように英語でコメント書いてますが、あまり意味はないです。もちろん、入力したファイル名は日本語でOKです。

終わりに

batchファイル、文法に癖があって敬遠してましたが、時短だけでなくストレスフリーな仕事をするためにも、ちょくちょく入れていこうかなと思い書いています。どんなシステムでも標準の業務フローが想定されて、作られています。Microsoft Officeもそうです。ですが、「それは、本当にいいフローなのか?変えられないのか?」を考える習慣はもっていたいですね。