投稿

9月, 2018の投稿を表示しています

PythonnでGUI作成

イメージ
久々の投稿です。 久々過ぎますね・・・ しばらくVBAを使いエクセル操作を自動化してました。 複雑なものは組めませんが、基礎的なことはネット情報や書籍を見ながらできるようになってきました。 Pythonでエクセルを操作できるライブラリ「openpyxl」がある事を知り簡単なPGを作ってみたところ 動くではありませんか! openpyxl.xlskというエクセルファイルのセルに入力後保存するという簡単なもの ////////////////////////////////////////////////////////////////////////////////// import openpyxl as px wb = px.load_workbook("openpyxltest.xlsx") ws = wb["Sheet"] ws.cell(1,1).value ="int" ws.cell(1,2).value =1234 ws.cell(1,3).value ="str" ws.cell(1,4).value ="1234" ws.cell(2,2).value = 4567 ws.cell(2,4).value ="4567" for i in range(1,11): ws.cell(3,i).value = i ws.cell(i+3,1).value = "TEST" + str(i) wb.save("openpyxltest.xlsx") ////////////////////////////////////////////////////////////////////////////////// しかし、作ったPGは他の人も使うので、GUIにできないかと調べておりました。 標準ライブラリの「tkinter」を使えばできるのですが、素人にはとっつきにくく 理解し難いものでした。(いずれ勉強して覚えたいと思いますが。。。) 他に何かライブラリはないかとインターネットで検索していると「PySimplGUI」という ライブラリを見つけ

結局はVBAに戻る。。。

Python → C#と進めてきた。 会社という組織中でコンピュータ環境を自由に使えないノンエンジニアが業務運用の効率化の為に主にエクセルを使ったルーチンワークを自動化できないものかと考え勉強してきた。 目的としては「業務の効率化」「人の能力に左右されない」がメインの課題であった。 そうなぜならエクセルをまともに使えない人が多い環境で運用がエクセルベースだとかなり非効率です。 メイン業務の運用としてはクライアントサーバでシステムが管理している。 エクセルはそのサブ的な扱いになる為、極端なことを言うと紙と鉛筆があればなんとかなる。 話がそれました。。。 ノンエンジニアがエクセル操作の自動化はVBAが最強では?という一つの答えがでたような気がする。 ・windowsマシンの場合Pythonをインストールする必要があるから、勝手なインストールは許可されていない。 ・C#なら.NETがあれば動くつまりwindowsであればほぼ動くでしょう。 しかし、これもIDEのインストールが必要、別の環境で作成したとしても許可されていないEXEファイルの起動は許されていない。 ・PythonやC#でデータを扱うためにSQLが必要。(なくてもできるかもしれない) そしてこちらもSQLiteやMicrosoft SQLサーバ等SQLのクライアントのインストールが必要。 何もできない。。。。しかし!! ・VBAであればエクセルが入っていれば問題ない。 業務用のPCであればほぼ100%エクセルがインストール済 ・簡単な自動化であればマクロの記録機能をうまく使えば簡単に組める。 非効率なコードにはなるのが、複雑なコードでなければ速度的にも可視化的にも問題ないでしょ ・最終目的はエクセル操作、上記の言語の場合エクセルに戻すコードが必要だがVBAであれば直接可能。 ・VBAは糞だというが、ノンエンジニアが組むコードであれば気にすることもない。 むしろVBAでもエクセル関数が使えて便利。(ライブラリを入れれば他の言語でも可能ですけど) ・複雑なコードの場合、VBAではお手上げなケースもあるが最終的にはエクセルシートを作ることが目的なのでVBAとエクセルシートでの計算と組み合わせるとどうだろうか? ということでVBAの勉強を始めました。 いえ。。