「バッチファイル」というと難しいイメージがありますが、その使い方は思ったよりも簡単。バッチファイルが使えるようになるとルーティンワークを自動化することが可能になり、超絶便利です。
筆者の場合、会社のPCでエクセルファイル1つ、プログラム2つ、ブラウザで2ページを必ず開くところから業務が始まるのですが、これを(バッチファイルへのショートカットを設定した)アイコンのダブルクリックで出来るようにしました。
この記事ではPythonのコードをバッチファイルで実行する方法を解説します。Pythonの使い方を知らない場合でも、ここにあるやり方をコピペすれば大丈夫です。
まずはpythonのインストール
まずはPythonをインストールします。「python install」でググれば出てきます。
日本の公式サイト:https://www.python.jp/install/windows/index.html
ダウンロードページ:https://www.python.org/downloads/
バッチファイルを置くフォルダを作成しPATHを通す
任意の場所にフォルダを作りそのフォルダをPATHに追加します。
フォルダをPATHに追加する方法は[コントロールパネル]>[システム]>[システムの詳細設定]>[環境変数]>[(ユーザー名)のユーザー環境変数]というところで編集ボタンをクリック。
新規ボタンをクリックしてフルパスでフォルダを指定すると追加されます。
ここでは例として「C:\MyPythonScripts」というフォルダを作ってPATHを通したものとして説明します。場所は任意なのでお好きなところにフォルダを作って良いです。
Python用のファイル作成
pythonで実行するコードを記述したファイルを先ほど作ったフォルダ内で新規作成します。ファイルの拡張子には『.py』を指定します。内容は後述します。
フォルダ内の拡張子が表示されない方は表示されるよう設定を変更してください。「拡張子 表示」などとググれば出てきます。
ここでは『test.py』というファイルを作ったものとして話を進めます。
バッチファイルの作成
Pythonの実行コードを記述したファイル(test.py)とは別にバッチファイルを作成します。バッチファイルは拡張子に「.bat」をつけ、ファイル名を「○○.py」とします。
バッチファイルを開いて次の1行を記述します。
batch
@py.exe (batファイルへのパス)\pyファイル名 %*
例えばパス[C:\MyPythonScripts]にある「test.py」を指定する場合は「@py.exe C:\MyPythonScripts\test.py %*」とします。
このバッチファイルを実行すると「test.py」に記述したコードが実行されるという訳です。
pythonファイル
以下、プログラム例です。指定したURLを開く、指定したエクセルファイルを開く、指定したプログラムを実行するという作業を一括で行うプログラムです。
メモ帳やエディタで以下のコードをコピペして「test.py」として保存します。
python
import webbrowser,sys,subprocess
#ブラウザで指定したURLを開く(この場合はヤフー)
webbrowser.open('https://yahoo.co.jp')
#指定したエクセルファイルを開く。
#c:\直下にあるtest.xlsxを開く場合。
#2行目のものは、excel.exeへのパスを適宜調整してください。
EXCEL = r'c:\test.xlsx'
subprocess.Popen([r'C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE', EXCEL])
#指定したプログラムを開く(この場合はC:\TeraPad\にあるTerapad.exe)
subprocess.Popen(r'C:\TeraPad\TeraPad.exe')
パスの前についている「r」はPATH名をこのまま読み込んでくださいの意味です。
バッチファイルでできることは、ブラウザでURLを開く、指定したプログラムを開くといった他にも、調べると色々と出てきます。
バッチファイルの実行方法ですが、バッチファイルをダブルクリックすればOK。
毎日使うようなものはショートカットを作成し、デスクトップに置いておけば便利です。
私の場合は[業務開始.bat]としてデスクトップの真ん中に置いてあります。出社してPCを起動した後バッチファイルを実行すれば業務に必要なプログラムがすべて起動します。
以下の例で使うモジュールは「webbrowser」と「sys」と「subprocess」です。デフォルトのライブラリに存在すると思いますが、存在しない場合はプロンプトで[pip install webbrowser]とタイプして[pip install sbprocess]で追加します。存在しない場合はエラーが出るだけなので、取り敢えず試してみて下さい。
Anaconda 3をインストールした場合
Anacondaをインストールしている場合バッチファイルの実行がうまく行かないことも。こんな時はバッチファイルの内容を以下に変更。
batch file
cd C:\MyPythonScripts
call C:\Users\XXX\Anaconda3\Scripts\activate.bat
python YYY.py
1行目は実行したいpyファイルの置き場所へ移動するコマンドです。
2行目はAnacondaをアクティベートするコマンド。
3行目が実行したい.pyファイルです。
追記:バッチファイルをスタートアッププログラムに登録
バッチファイルをスタートアッププログラムを入れるフォルダに入れておけばPCを起動したときに自動的にバッチファイルが実行されます。
[Windowsキー]+[R]でファイル名して実行>shell:startupとタイプすると起動時に実行するスタートアッププログラムを登録できるフォルダが開くので、そこにバッチファイル(またはそのショートカット)をドラッグ&ドロップします。
pythonコードを実行するバッチファイルで作業を自動化 まとめ
Pythonを勉強すると、ひとつひとつ手作業でやっていたことを自動化して手間も時間も節約できます。
もはやプログラミングの基礎は社会人必須スキルの1つ。ホリエモンも言っている通りさわりだけでも勉強しておくと、確実に業務に反映させることが出来ると思います。