RPA で日々の業務を効率化しながら、複業や転職のような年収アップにつながるスキルを習得できたら……、と思いませんか? そんな方におすすめの、今人気のプログラミング言語 Python での RPA です。
本連載は、プログラミング・Python 初心者が RPA の作成と Python プログラミングの基本を学習する欲張り企画です。本記事は、ちょっとでもプログラムの学習をしたことがある人には簡単な内容となっていますので、不要だな……と思ったら次回に飛ばしてくださいね!(一応、おすすめのエディタも紹介しています)
第一回は上のリンクからどうぞ。
- 対話モードではなく、ファイルから Python の RPA を実行する方法
- 初心者にオススメの Python 用エディタ
ファイルから Python の RPA を実行する方法
本連載では、これまで対話モードを使って RPA の記述を行ってきました。
ただ、ひとつの動作を行うのにわざわざコマンドを入力していては、 RPA の自動化どころか、フィクションの世界のベタベタなハッカーのイメージの、めちゃくちゃキーボード打つ人です。なお、実際のプログラマーはあんなにがちゃがちゃ打ち続けないで、業務の7割くらいは PC の前で考え込んでいるというのは有名な話です。
しかし、この連載を読んでいるあなたはそんな縛りプレイをしたいのではなく、多少の苦労はあっても、最終的には効率的な仕事をしたいと思っているはずです(ですよね?)。
ということで、ファイルに Python スクリプトを書いて実行する方法を学びましょう(と言っても難しくないですけどね!)。
まずは拡張子を表示する
プログラムを学習しよう! という人はある程度PCに詳しい方が多いと思います。が、それでも「拡張子」を表示していない人もいると思うので、簡単に説明します。Windows 10の方法ですが、11でも大体同じはずです。
まずは、Windows キー + E などで、エクスプローラーを表示します。続いて、表示タブに切り替えます(上図参照)。
そうしたら、上図を参考に、「ファイル名拡張子」にチェックを入れます。その下の「隠しファイル」は通常チェックが外れていると思います。 Python プログラミングを学習する上では不要ですので、特別理由がなければチェックはしないでおきましょう。
以上がすむと、ファイル名の末尾に「.txt」「.exe」「.docx」などのように拡張子が表示されるようになります(ファイル名末尾の.から後ろが拡張子です)。
拡張子についてのマメ知識
拡張子はWindowsやその前身のMS-DOS, また業務用・サーバーOSのLinux, UNIX系OSでファイルの種類を示すものとして長く使われています。
一方で、MacOS 系ではずっと、拡張子は使われていませんでした。現在では、ネットワークの発達により他OSとのファイルのやりとりが頻発し、また Linux OSをベースとしたことなどにより、今では拡張子をつけることが一般的になっています。
ただ、古くから拡張子を使っているWindows系とLinux系でも拡張子の扱いが少し異なる部分があります。Windows系は、拡張子は通常ひとつです。一方で、Linux, UNIX系では古くから、.tar.gzのように複数の拡張子をつけることがあります。
これは、複数のファイルをまとめる「.tar(tape archiver)」でアーカイブ(書庫化)し、ひとつのファイルとしたものを「.gz(gun zip)」で圧縮している……ということを意味しています。
テキストファイルを作成する
さて、拡張子の話がでましたので、python の拡張子の話をします。Python の拡張子は.pyです。特に困ることもあまりないですが、Python ランチャーの Py と少し紛らわしいのですよね。
ただ拡張子は .py ですが、中身はただのテキストファイルです。ですので、Windows 標準の「メモ帳」でも作成できます。ただ、Office の Word などのリッチな書式設定ができるワープロソフトでは通常作成できないので気をつけてください。
では、試しにメモ帳を起動して、.py として保存してみましょう。
起動したら、何も編集せずに「名前を付けて保存」を選びます。保存先のフォルダは分かるところであればどこでも構いません。ただ、コマンドプロンプトで直接操作する場合があることを考えると、「c:\myPython\」のように、入力しやすいフォルダを作るのも一つの手段です。筆者はWindows の標準フォルダをいじっているので、「D:\Documents\myPython」に保存することにします。
保存するフォルダを決めたら、まず「ファイルの種類」を「すべてのファイル (.)」とします。続いて、ファイル名に「test.py」のように、自分で拡張子まで含めてファイル名を入力します。最後に、「文字コード」がUTF-8になっていることを確認して、保存ボタンをクリックしましょう。
これで、空の Python ファイルが完成しました。間違えてファイルの種類を「テキスト (*.txt)」のままにしたりすると、test.py.txtのようなファイルができてしまうこともあります。その場合は、ファイル名を変えて拡張子を変えましょう(警告がでますが、OKで大丈夫です)。
.py ファイルから Python を実行する
実は、通常 Python をWindows にインストールすると、ダブルクリックでも Python が起動して実行されます。ですので、.py ファイルを編集したい場合は、メモ帳などのエディタにドラッグ&ドロップしたり、エディタのファイルメニューから「開く」で.pyファイルを指定する必要があります。
ただ、ここではこれまで通り、コマンドプロンプトなどから実行します。
まずは、今、空のファイルとして作成した.pyファイルに意味のある Python を記入しましょう。前回の内容をそのまま利用しましょう。
import pygetwindow as gw
memo = gw.getWindowsWithTitle('メモ帳')[0]
memo.activate()
memo.maximize()
memo.restore()
このように入力して保存します。
保存したら、test.py を保存したフォルダの、何もないところ(ファイル名ではないところ)で、Shift + 右クリックをします。すると、人によって環境が異なりますが、上図の赤い四角のように「PowerShell ウィンドウをここで開く」または「コマンド プロンプトをここで開く」というメニューが表示されますので、それをクリックします(PowerShellかコマンド プロンプトかは環境によって異なります)。
すると、.py ファイルを保存したフォルダでコマンドプロンプトが起動しますので、コマンドプロンプトの機能になれていない方でも、少しだけ扱いやすいと思います。
ではいよいよ実行してみましょう。
py .\test.py
と入力してEnterキーを押します。
すると、一瞬ですが先ほどまで編集していたメモ帳が最大化され、元に戻ったのが分かると思います。他にメモ帳が表示されていたら、そちらかもしれません。
よく分からないよ! という方はメモ帳を最小化してから実行すると、メモ帳がアクティブになり、再表示されますので実行されているのが分かるかと思います。
また、エクスプローラーから「test.py」をダブルクリックすると、コマンドプロンプトが一瞬表示され、同じようにメモ帳が一瞬最大化され、元に戻るという動作が確認できると思います。
では、次に、test.pyの内容を少し変えます。最後の行を、
memo.restore()-
のように、最後にマイナスの記号をつけてください。
その状態で実行すると、
PS D:\Documents\myPython> py .\test.py
File "D:\Documents\myPython\test.py", line 5
memo.restore()-
^
SyntaxError: invalid syntax
このようにメッセージが出て Python が実行されません。
最後の行の、「SyntaxError」というのは「文法エラー」という意味で、つまり、Python の記法のルールに違反しているので実行出来ないという意味になります。その前は、大体どこでそのエラーが出ているのか、ということを示しています。
では今度は、エクスプローラーからtest.pyをダブルクリックしてみましょう。おそらく、エクスプローラーが一瞬、明滅(ノンアクティブになりまたすぐにアクティブになる)しただけで何も起こらないと思います。
これは、エラーで Py の実行が終了してしまったので、エラーのメッセージも出ない(一瞬出ている場合もある)ですぐに終了してしまっているからです。これだと、学習の場合、どこがエラーなのか、果たして本当にエラーなのか分からないですよね?
ですので、少し面倒ですが、きちんとコマンドプロンプトやPowerShellから、py コマンドを実行するようにしましょう。
前回までの繰り返しになりますが、対話モードの利点は結果がすぐ出ることです。
数値解析などでは、出て来た解析結果を見て、さらに深掘り(ドリルダウン)したり、あるいは方針を変えたりとその場で対応できる、ある意味「とても凄い電卓」のような使い方としても便利です。
しかし、それだけではなく、今回の「エラー表示」のように、どこで何を間違えているか? というのがプログラムでは重要です。そのため、すぐに結果の分かる対話モードは、初学者のエラーをすぐに見つける役にも立っている、ということです。
Python 初心者にオススメのエディタ
色々ありますが、ここでは1本紹介します。
サクラエディタ
プログラミングに必要十分な機能が備わった、最初から日本語のエディタです。
ただのテキスト編集のエディタではなく、プログラミングなどに適した「編集モード」を備えており、本来は見えない文字(空白や改行)なども表示してくれるのでプログラミングにぴったりです。
残念ながら、標準の編集モードには Python は含まれていません。
しかし、既に最新の3.10.0にも対応した設定ファイルを公開してくださっている方がいらっしゃいます。
しかも、説明もものすごく丁寧なので、上記ページをみれば迷うことはないと思います。
ちなみに、今回テストで使用したtest.pyを開くと、以下の画像のようになります。
今回のような簡単すぎるプログラムでは効果を実感しにくいですが、import や as 、また”で囲まれた文字などが色分けされていて見やすいのが分かると思います。
終わりに
今回の内容は、実はプログラミングを学習するなら、Python に限らずほぼ全ての言語で共通で必要になる知識です。プログラミング言語は、(ある意味ではRPAと同じように)それを動かすツールか、または実行ファイルの形式である.exe化することで動作します。そして、対話モードでなければ大体エディタなどでプログラムを記述します。
- Python は .py ファイルを py コマンドを使って動かす
- ダブルクリックでも起動するけど、開発中はコマンド プロンプトを使ったほうがいい
- メモ帳でもいいけど、サクラエディタのようなプログラム向きの高機能エディタがおすすめ
なお、エディタではなく IDE と呼ばれる統合開発環境もあります。エディタ機能だけではなく、pyの機能なども内蔵している、巨大なソフトウェアです。Microsoft の Visual Studio が有名ですね。また、Python には Spyderや Jupyter といったものもあります。
ただ、これらのツールは巨大で便利な分、基本的なところが覆い隠されていたり、ツールの使い方に気を取られてプログラム自体に集中できなかったりと、初心者には弊害となる部分もあると筆者は考えています。 RPA 用の機能なんかは、大体の場合ありませんしね。
そこで、今は Python で RPA を学習している皆さんですが、もしかしたら他の言語を勉強するかもしれない。そういう時にも応用できるように、本連載では基本的なツールのみで進めて行きます。