ビジネスデータ処理について学んだ(その11)
今回のテーマは①Pythonを自分のパソコン内で利用できるようにする。②openpyxlを使って、Pythonからエクセルを操作できるようにする。パス(何処にファイルを保存しているかをプログラムに伝える)が重要になる。
自動化について
例えば名簿の表から指名、性別、生年月日のデータだけを抜き出して会員書を作るときにどのように作るか????テンプレートに人数分コピペでやるのは大変。
エクセルのVLOOKUP関数を使う方法
VLOOKUP関数を使うと表の中のデータを検索し帳票に入れることができる。
但し、VLOOKUP関数で複雑な処理を行おうとすると、セル内の関数や参照が複雑になるので、「作った人しか動きが分からない」「何故こんな数字になっているか後から見て分からない」という事が起こり得る(保守性が落ちる)
映像授業では丁寧にVLOOKUP関数を使った作業を実演してくれたが、ここではVLOOKUP関数は、表を縦方向に検索して、指定した項目に対応するデータや値を取り出してくれる機能だということだけ抑えておこうと思う。本当に使うことになったらGoogleのお世話になることにした。
マクロとVBAを使った自動化。
関数でできない操作でもマクロとVBAを使えば自動化が可能(マクロもVBAも聞いたことが有る程度)
Excel上で行っている操作をVBA等形式でプログラムに置き換え記録することをマクロという(何を言っているのかわからん!)。記録したプログラムを再生すると同じ事が実行される。さらに改造することで処理の自動化ができるようになる。
マクロを入れた場合、マクロ有効ブック(.xlsm)で保存する必要がある。マクロを悪用して沢山ウイルスが作られた過去があり、メールに添付するとウイルスと間違えられる等、不便な面もある。特に自分以外、自部署以外と.xlsm形式のブックを共有する場合は注意。
.xlsm形式はExcel上でしか動かないので他のシステムとの連携には問題が出てくる。
Excelのリボンのユーザー設定で開発タブが表示されるようにし、開発タブを開いてマクロを指定して記録していく。
動画の実演でマクロが「作業を記憶させること」「記録に使う言語がVBAであること」は分かった。これもここまでにしておこうと思う。使うことが有ればGoogleのお世話になろう。
RPA
人の行う提携動作(マウスやキーボードの動き)を記録して処理を自動化する。
マクロはExcelの動きを記録したが、RPAはExcelだけではなく業務全般を自動化できる。
業務フローの見直し、業務の取捨選択(本当に必要な業務なの?)をしっかりやらないと複雑なものになってしまう。見直しや取捨選択にはそれなりに工数がかかる。
基本的には有償のソフト、使い方の習得が必要になる。ベンダーロックインのリスクもあり。
導入すべき膨大な定型業務が有るかどうかが肝要。
MicoroPowerAutomationはデスクトップ用なら無料。
動画でMicroPowerAutomationによる自動化の実演を見た。機能のボックスをドラグアンドドロップで積み木のように組み立てていく。なんだかできそうな気がする。少し興味あり。
Pythonによる自動化
いよいよPython登場。関数、マクロ、VBAはExcel上の世界、RPAはWindows上の世界、PythonはCSV等テキスト上のデータであれば何でも良いので、汎用性が高い。すなわち資産化が可能。
Pythonのインストール
Google Colabはブラウザを経由するCloud上の世界。したがって自分のPCのデスクトップにあるExcelの処理をやらせる場合、Excelのアップロード、処理したExcelのダウンロードが必要だった。今回は自分のPCにPythonをインストールしてしまう。Pythonを使うためのアナコンダ(パイソンもそうだが、なぜ蛇の名前なのか)というパッケージがある。
アナコンダをインストールし、anaconda navigatorを開く、anaonda navigatorの中のjupyterを使う。jupyterのlaunchボタンを押下するとJupyter notebookが立ち上がるはずなのだが、まったく立ち上がらない。GoogleとChatGPTで調べて試してみたが全くダメ。お手上げなので、デジタルファーストキャンプで使っているSlackで先生に質問。質問したのが週末だったので、週明けにお返事いただいたら取り組もうと、ほかの講義動画を視聴していたらすぐにお返事をいただいた(驚きと感動)。結局自分のPCに英字半角のユーザー名でもう一つ作り、そちらにAnacondaを再インストールしたら上手くいった(図1)
Jupyter Notebookとはブラウザ上で動くPythonの実行環境。これをクラウド上で使いやすくしたのがGoogle Colab
Pythonからエクセルを操作する
Pythonからエクセルを操作するにはopenpyxlというライブラリを使う。
まずはCドライブ直下にbbtフォルダを作り、空のエクセルブックを格納(ファイル名はsample2022.xlsxとした)
早速openpyxlをインポートしてブックを取得する(図2)
エクセルのファイルはWorkbookが一番大きい大もと。必ずWorkbookから入り、そこからsheetを取得する。Workbook→Sheet→Cellとなっていることを頭に入れておく必要がある。(図3)
シート上のセルに書き込んで保存(図4)。確かに書き込まれていて感動(図5 いちいち感動してしまう)
エクセルを開いた状態でPythonを動かすとうまくいかないので要注意。確認したらエクセルを閉じておく。
openpyxlのドキュメントのアドレスはこちら。日本語でも多くの解説ページがある。
https://openpyxl.readthedocs.io/en/stable/
写真は神戸の六甲山中で見上げた鉄塔。
この記事が気に入ったらサポートをしてみませんか?