PythonでExcelデータをWindowsソフト(税務ソフト)へ自動入力。openxl・pyautogui・pyperclip。取材の依頼PythonでExcelデータをWindowsソフト(税務ソフト)へ自動入力。openxl・pyautogui・pyperclip。プログラミング入門TwitterFacebook0はてブ3Pocket9LINE2018.09.13Python(パイソン)でプログラミングし、Excelデータをソフトへ入れる方法をまとめてみました。Pythonで、Windowsソフトへ入力Pythonでマウス操作・キーボード操作をするなら、pyautogui今回の事例は、こういったものです。ExcelデータをWindowsソフト(税務ソフト)に入力します。同じPC内ソフト、データを取り込むなり連動できればいいのですが、残念ながらできません。・Excelからデータを読み取る・ソフトへ入力するということをやっています。そのPythonは、必要な時に必要なだけ仲間の力を借りることができるのです。・何かを切断したいならクリリンに出てきてもらい、気円斬。・おなかが空いたら、サンジに出てきてもらい、料理を作ってもらう・船を動かすなら、ナミに出てきてもらい、方角を見てもらう・強敵が出会えば、ゾロに出てきてもらい、戦ってもらうという感じです。Pythonではその仲間を「ライブラリ」といい、インストールして、インポートします。今回は、入力するという場面で、力を借りるのは、pyautoguiです。これ、わけると、py(Python),auto(自動)、GUIとなります。マウスでクリックしたり、タッチしたりして操作できることです。pyautoguiは、関連してキーボード操作もできます。Pythonの基本はこちらの記事で書きました。PythonとEXCELマクロ比較。EX-ITこのライブラリをインストールしましょう。インストールは最初の1回で大丈夫です。pyautogui)Pythonではこう書いて、インポート(import)します。インポートとは、ライブラリを使うという意味で毎回必要です。〇〇で、プログラミング中は、〇〇と表現するということにできます。pyautoguiだと長いので、pgとしました。・pyautogui.click(〇、〇)で、座標〇・〇をクリック・pyautogui.typewrite(〇〇)で、タイピング・pyautogui.press(〇)でキーを押すといったことができます。「普通預金」と入力するなら、pyautogui.typewrite(‘普通預金’)といれればいいはずです。(文字は、’で囲むというルールです)しかしながら、うまくいきません。日本語は、typewriteで使えないのです。そこで、コピー、貼り付けを使います。Excelからデータをコピーして、それをソフトに貼り付けます。コピーして貼り付けには、pyperclipというライブラリがありますので、インストールしておきましょう。Excelを使うので、openpyxlというライブラリも必要です。New!強みづくり過去記事一覧(直近365)■スポンサードリンクPythonで、Excelから読取PythonでExcelからデータを読み取ります。openpyxlをインポートし、xlという名前で今後使うとし、Excelファイルを開き(ファイル名の前にrをつけておきます)、シートを指定します。シートの指定は、開いたそのシートという指定をしました。vがついているのは変数で、任意です。v_wb.activeこういったデータでシートを読み取っていきましょう。変数v_typeに「種類」を入れると考え、まずは、セルA2の「当座預金」を入れていきます。v_ws[‘a2’].valueとし、print(v_type)で、出力してみましょう。無事に、「当座預金」と出てくればOKです。他も同様に書いてみましょう。支店名をくっつけています。プリントすると、2行目は無事とれている感じです。Pythonを書くソフトは、Pycharmを使っています。次にExcelからとってきたデータをコピーして、ソフトに貼り付けます。入力開始位置の座標を調べるソフトに入力するには、その入力開始位置がどこかを指定する必要があります。RPAなら、操作を記録できるので、記録モードにしてクリックすればすむのですが、Pythonはそうはいきません。その位置の座標(X、Y)を指定する必要があります。PCの画面のこの位置がX、Yともにいくつかということです。Pythonを書くソフトPycharmでは、下の[Pythonコンソール]を使います。>>>のあとにプログラムを書き、実行すると、その結果が表示できるのです。pyautoguiでインポートし、pyautogui.position()と入れ、マウスカーソルを座標に置いてEnterを押せば、その座標を表示してくれます。この座標をプログラムで使うのです。これをおもしろい!と思うかどうかはプログラミングを使うかどうかの分かれ目でもあります。ペチペチ入力する人生から舵を切りたいなら、面白いと思わないまでも、やってみましょう。・ソフトの位置を決めて、座標を調べるときとプログラムを実行するときを同じにするということです。私は、Windowsキー+左を押した位置にしています。これなら確実ですので。解像度が異なるPCではこの座標を変える必要があります。PCの解像度を調べて、それぞれの位置を読み取るというプログラムも書くことはできますが。その座標をこのように表現し、クリックします。開始位置さえ決まれば、あとは、TabやEnterでカーソルを動かせるはずです。(pgとして使う)を使いましょう。v_ws[‘a2’].valueです。これを、コピーするには、pc.copy(v_type)と書きます。(pgは、pyautogui)ここまで書いて実行してみて、うまくいけばOKです。このあとにどうカーソルを動かすかを考えます。「当座預金」と入力して、Tab、Tabで次の入力位置に行きますので、そのように書きましょう。Tabを押すにはこう書きます。pg.press(‘tab’)2回押すなら、プログラムをコピーしてもいいのですが、こういう書き方ができます。presses=2)こうやってすべての項目について書いてみましょう。pause=1.0)これで動けば、1行をうまく入力できたということです。pause=1.0)としました。これはRPAにもあることで、イケてないソフトほどついてこれないのです。そのため、pauseで1秒とめています。(これ、DIOのザ・ワールドのようで大好きです)繰り返し部分をつくる以上のプログラムを、Excelの2行目から7行目まで繰り返します。range(〇,△):で〇から△まで繰り返します。range(2,8):です。7行目までなので8と指定します。str(i)].valueとすれば、iに2、3、4、5、6、7と入り、7行目まで繰り返してデータをとってきてくれるわけです。iはPythonの場合、str(i)と文字列(string)にします。Pythonのforは、その下でインデントをつけた(Tabキー1回)部分を繰り返すというしくみです。同様にとってくるように書きます。「7行目」というのをヒトが数えて毎回書き直すのは面倒です。これもPythonに数えてもらいましょう。1):とすれば、最大行の7に1を足した8とすることできます。データが増減しても、プログラムを変更する必要はありません。完成版はこうなります。ソフトによって、読み取る場所や、クリック位置を変更すれば使えるはずです。pause=1.0)という削除のプログラムも入れています。この場合は、7回繰り返すというプログラムです。pause=1.0)この事例、RPAツールのUiPathと比べてみても興味深いです。・特定のソフトに依存しない・構造がシンプル・プログラムを書きやすいという点では、Pythonが上です。RPAもどっちみちプログラミングの知識が必要ですし、プログラミングしなければいけない部分もあります。RPAでプログラミングの基礎を学び、PythonやExcelマクロに入るのもおすすめです。UiPath(RPA)×Excel。六本木ヒルズ近くだったので、合間に森美術館の「建築の日本展」へ。絵はあんまりですが、建築・建造物は興味あります。夕方は、AI本の打ち合わせ。夜は、ようやく、ようやくゼルダの伝説ブレスオブワイルドをクリア。7月から再スタートし、ダウンロード版を買って読込時間を短縮し、途中で最初からやり直しつつ。トータルプレイ時間200時間は行ってるかと。その後、オクトパストラベラーをはじめましたとさ。保育園の食事も幼児食に。食材が変わったり、うどんが長くなったりするそうで。お祝いにおもちゃを買いに。(いつも買ってはいるのですが)好きなカエルのぬいぐるみと、動物カードを買いました。動物カードは、2つに分かれていて組み合わせるもの。頭の体操にもよさそうです。好きな、サル、ワニ、カメ、ゾウもいます。よういち)「ひとりしごと」=雇われない雇わない生き方を、時間・お金の両面でサポート。『税理士のためのRPA入門』『やってはいけないExcel』など14冊。日課は1日1新、ブログ。