パソコン仕事5倍塾
35,000人を指導した東大卒・元日本IBM社内講師が直伝
MENU
高野浩一さんの投稿
(投稿ID: 5388)
aliceさんのコメント
(コメントID: 7840)
藤本 博子さんのコメント
(コメントID: 7841)
田中 宏明さんのコメント
(コメントID: 7842)
沖津さんのコメント
(コメントID: 7843)
高野浩一さんのコメント
(コメントID: 7848)
(コメントID: 7849)
(コメントID: 7850)
(コメントID: 7851)
(コメントID: 7852)
(コメントID: 7853)
(コメントID: 7854)
(コメントID: 7855)
小川 慶一さんのコメント
(コメントID: 7856)
from tkinter import * from tkinter import ttk root = Tk() frm = ttk.Frame(root, padding=10) frm.grid() ttk.Label(frm, text="Hello World!").grid(column=0, row=0) ttk.Button(frm, text="Quit", command=root.destroy).grid(column=1, row=0) root.mainloop()
(コメントID: 7857)
import openpyxl path_excel = "C:\my_python\chisa\kakidasi_file.xlsx" path_save = "C:\my_python\chisa\kakidasi_file_result.xlsx" wb = openpyxl.load_workbook(path_excel) ws = wb["Sheet1"] ws["A1"].value = "こんにちは" wb.save(path_save) wb.close()
(コメントID: 7858)
(コメントID: 7860)
(コメントID: 7861)
(コメントID: 7862)
(コメントID: 7863)
(コメントID: 7868)
Captcha:
たった1ヶ月で人生が劇的に変わりました
佐藤信さん
役員クラスの方から高い評価を受けるようになりました。
佐賀県 - 岩本徹さん
今までまったく知らなかったショートカットキーを使いまくっています。
東京都 - 鷹觜慶さん
年齢60才間近、営業で外回りの時間が多い私でも退社時間が1-2時間程度早くなりました。
東京都 - 宗内隆明さん
受講前もすでにパソコン得意でしたが、そんな私でも受講して本当に良かったと思えた講座です。
東京都 - 佐伯とも子さん
ここまで包括的に仕事に役立つ深い学びを受けれた講座は初めてでした
東京都 - 飯田倫子さん
2024年12月15日 22:47
2024年12月14日 06:16
2024年12月02日 10:35
2024年11月30日 11:04
2024年11月27日 09:59
2024年12月17日 07:25
2024年12月17日 05:44
2024年12月16日 10:51
2024年12月16日 10:02
2022年02月24日 10:59
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
2022年02月02日 00:00
2022年02月02日 03:00
2022年02月02日 06:00
2022年02月02日 09:00
2022年02月02日 12:00
2024年12月19日 11:30
2024年12月18日 13:30
2024年10月21日 17:30
2024年10月18日 17:00
2024年10月17日 17:30
2024年11月27日 11:48
2024年11月25日 12:07
2024年11月17日 09:51
2024年11月15日 16:41
2024年11月15日 13:07
高野浩一さんの投稿
(投稿ID: 5388)
さっそく成果出されてますね。うらやましいです!
沖津さん
初めまして。高野といいます。
すっかり忘れてしまいましたが、私もexe化の経験があるのでシェアします。
私の以前のメモによりますと、次のコマンドで変換できます。
pip install pyinstaller
pyinstaller filename.py --onefile --noconsole
すると、次のようなファイルが作成されます。
dist/filename.exe
なんでこんな事を調べたかというと、VBAとPythonを混在させたかったためです。
以前、Excelマクロの中でInternet Explore連携を行ってたんですね。
そしてIEの時代が終わり…、PCを交換した時点でボロッと動かなくなってしまいました。
周りにも配布していたもので、対策に悩んでました。
最善の方法だったか分かりませんが、次のようにして回避できました。
1. IE連携周り"だけ"、Pythonで書き直す。
2. Pythonをexe化する。
3. exeファイルを、Excelマクロから次のように起動する。
Shell"フルパス/filename.exe"
ご存じかもしれませんが、exe化するとPythonそのもの、importしたライブラリも含め1点のファイルにまとまります。
よって配布には便利ですよ。
Pythonを極めたら、VBAは必要なくなるかもしれません。
ただ、VBA資産活用のお役に立てるかもしれないと思い、シェアさせていただきました。
(もっとエレガントな方法が、あるかもしれませんが。)
以上です。
aliceさんのコメント
(コメントID: 7840)
ありがとうございます!
というより高野さんもPython活用されているではないですか!!
高野さんの活用方法もとても参考になります。
exeファイルはExcelマクロから実行できるんですね。知りませんでした。
さっそくやってみたいと思います。
私もpyinstallerでexe化しました。
わかりやすい説明をありがとうございます(●'◡'●)
>Pythonを極めたら、VBAは必要なくなるかもしれません。
>ただ、VBA資産活用のお役に立てるかもしれないと思い、シェアさせていただきました。
最近はやりのマクロが入ったファイルがブロックされる件で若干影響がありまして…、あのメッセージをみたときにいろいろ思うことがありました。Excelマクロは便利なのでこれからも使うと思うのですが、そこまでこだわらなくていいかなーと感じているのはPythonのおかげかな?と思っています。
藤本 博子さんのコメント
(コメントID: 7841)
exe化の情報共有ありがとうございます。
私もaliceさんのコードと高野さんの説明を参考にして、試してみました!
--noconsoleを指定すると、何かエラーがでた時も画面で確認できるのでいいですね。コマンドから実行すると、一瞬でエラー表示が消えてしまうと思うので。
(保護されたPDFを結合しようとして怒られました (;^_^A)
皆様、業務で活用されていて素晴らしいですね!見習いたいです。
ありがとうございます!
田中 宏明さんのコメント
(コメントID: 7842)
ExcelVBAからexeファイルの実行は、それしか方法がない場面で有効ですが、
同期起動(ExcelVBAからexeファイルを実行。完了後にExcelVBAに制御が戻る)
を覚えたほうがたぶん役に立ちます。
VBAで他のアプリケーションを同期起動する(WshShell)
https://vbabeginner.net/wshshell/
お二人のレベルであれば、Pythonですべてやり切ってしまうことを志向された
ほうが結果的に近道かもしれません。
沖津さんのコメント
(コメントID: 7843)
はじめまして。沖津です。
exe化のコード、くわしく教えてくださりありがとうございます。
Pythonでこんなことができるなんてびっくりしました😲
ためしに何か?exe化してみようと思います!
ありがとうございました(o^―^o)
高野浩一さんのコメント
(コメントID: 7848)
exe化の話は、2年位前にトライしたものです。
当面の目標は、2年前の自分です… (ノД`)・゜・。
藤本さん
相変わらずの怪人っぷりw。
--noconsoleの意味なんて、全く覚えてませんでしたよ。
田中さん
情報ありがとうございます!
興味深い記事ですね、外部連携セミナーを思い出しました。
私の用事は制御を戻す必要がなかったので、全く気になりませんでした。
結構複雑なこともできそうですね。
沖津さん
びっくりですよね。Excelとは、できることの幅が違いますよね。
大本さん
初めまして。イメージが湧くとやる気出ますよね。
"まだまだ先"なんて、そんな遠慮なさらずに!
aliceさんのコメント
(コメントID: 7849)
Excelからexeファイルを動かしてみました。
Shell"フルパス/filename.exe" という短いコードで動かすことができてちょっと感動しました。
ありがとうございます!
藤本さん
>--noconsoleを指定すると、何かエラーがでた時も画面で確認できるのでいいですね。コマンドから実行すると、一瞬でエラー表示が消えてしまうと思うので。
私も保護されたPDFでやってみて、エラーが表示されるのを確認しました。
--noconsoleはconsole画面を表示しないために指定すると思っていたのですが、エラーを表示されることを藤本さんの投稿で知りました。
実は最初は--noconsoleを指定しなかったので一瞬でエラーが消えてしまい、それを読むために画面録画をしてなんとか読んでいました(^^;
ありがとうございます!
田中さん
WshShellというものもあるんですね。見てみます!
ありがとうございます!
田中さんの知識の広さと深さがすごすぎです。
大本さん
ありがとうございます!
私も大本さんが先月のもくもく会でされていたダミーデータを作成することなど、参考にさせていただいています。
グローバルなアイディアも素敵だと思いました。
続編も気になっています(●'◡'●)
沖津さんのコメント
(コメントID: 7850)
結果から言うと
何度か失敗しつつも…
なんとかexeファイルは出来上がりました!
ただ…
exeファイルをダブルクリックで実行しても
うんともすんとも言わず。。。😨
ちなみに…
pythonファイルには
こんな感じの👇文字を出力するプログラムしか書いてないです💦
print("こんにちは")
Excelマクロからも実行してみたものの
やっぱり何も起こらず…
何か失敗しているか?
わたしの操作ミスなのだと思うので
もうちょっと探ってみます💦
高野浩一さんのコメント
(コメントID: 7851)
取り急ぎコメントします。恐らく操作の問題ではないと思います。
printはターミナルに表示する機能なので、.exeから実行した時に何が起るべきなのか私も分かりません。
VBAでいうところの、Msgboxのような機能(メッセージがポップアップする機能)があれば、イメージどおりになるかと推測します。
沖津さんのコメント
(コメントID: 7852)
お返事ありがとうございます。
なるほど!
では、何か違うコードを書いて、再チャレンジしてみます!
ありがとうこざいます☺️
高野浩一さんのコメント
(コメントID: 7853)
ちょっと調べてみました。Msgbox的な機能は、"messagebox.showinfo" ですね。
(これを使用するには、tkinterのimportが必要です。)
また、メッセージ表示だけでは物足りないでしょうから、VBA連携サンプルを作成しました。
もしよろしければ、ご確認ください。
サンプルの趣旨は、Excel(セルA1)にある文字列を、exeファイルに引数渡しする事です。
これだけ分かれば、色々応用が利くと思います。
exe化したPythonを、filename.exeと想定します。
またfilename.exeは、Excelブックと同じ場所に保存してください。
そしてExcelブックのセルA1に、表示させたいメッセージ(例:こんにちは)を入力してください。
●Python側
from tkinter import messagebox
import sys
args = sys.argv
MSG_ARGS = args[1]
messagebox.showinfo('Windowのタイトル', MSG_ARGS)
●Excel側
Sub msgbox_test()
Dim MSG_EXE As String
MSG_EXE = Range("A1").Value
Shell ThisWorkbook.Path & "\filename.exe " & MSG_EXE
End Sub
Excel VBAで、msgbox_testを実行してください。
セルA1のvalueがexeファイルに渡されて、tkinterのmessageboxに表示されます。
以上です。
aliceさんのコメント
(コメントID: 7854)
おはようございます。
exe化されたんですね。すごいです(❁´◡`❁)
私もexe化するときにはまりました(T_T)
pythonでは普通に動くのにexeにしたらできなくなって「なんで??」となりました。
何が問題かわからずに、コードが悪いのかうまくexe化できていないのかわからなくて、もう嫌だー!!という気持ちになりました。
ちなみに私の場合はパスの指定が原因でした(^^;
https://qiita.com/Authns/items/f3cf6e9f27fc0b5632b3
再チャレンジ、応援しています(●'◡'●)
お互い楽しみましょう!
高野さん
VBAのサンプルまでありがとうございます!
憧れのtkinter(๑•̀ㅂ•́)و✧
Excelの文字列をexeに引数として渡せるんですね、すごい!
こちらも実際に書いてみます。
いつもありがとうございます(●'◡'●)
沖津さんのコメント
(コメントID: 7855)
メッセージボックス的な機能の使い方
丁寧に教えてくださりありがとうございます。
tkinter をインストールして"messagebox.showinfo"で
やってみたい!!と思い…
さっそく pip install tkinter してみたんですが…
エラーが出てしまいました💦😨
ERROR: Could not find a version that satisfies the requirement tkinter (from versions: none)
ERROR: No matching distribution found for tkinter
(訳)
ERROR: 要件 tkinter を満たすバージョンが見つかりませんでした (versions: none から)
ERROR: tkinter にマッチするディストリビューションが見つかりませんでした。
何をどうすればインストールできるのか?
ただいま、調べ中です💦
୨୧・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・୨୧
aliceさん
exe化チャレンジの応援ありがとうございます♪
なんかおもしろそうなので頑張ります!
…が
一難去ってまた一難状態です。。。
aliceさんもexe化するとき一筋縄ではいかなかったんですね。
わたしだけではないとわかり、ちょっとホッとしました🤣
exe化した場合
__file__ を使わない方がいいんですね!😲
教えてくださり、ありがとうございます。
頑張ります!!
小川 慶一さんのコメント
(コメントID: 7856)
試しに、以下の公式ドキュメントにある以下のコードを貼りつけて実行してみてください。
https://docs.python.org/3.10/library/tkinter.html#a-hello-world-program
沖津さんのコメント
(コメントID: 7857)
とりあえず!簡単なコードを書いて
exe化!してみました!
書いたコードは
Excelのファイルの
Sheet1シートの
A1セルに『こんにちは』を入力する!
パスの指定は __file__ を使わずにやってみました!
無事に!!
書き出し成功しました(∩´∀`)∩
めちゃくちゃうれしいです。。。
沖津さんのコメント
(コメントID: 7858)
教えていただいた公式ドキュメントのコードを実行したところ
無事にメッセージボックスが表示されました!
tkinter
すでに入っていたんですね😲
pythonをインストールするときに
tkinterが同胞されるらしい…ということまではわかったので
pythonをインストールしなおそうかと思ってました💦
教えていただきありがとうございます。
高野さんから教えてもらったコードも試してみます。
m(__)m
小川 慶一さんのコメント
(コメントID: 7860)
>pythonをインストールするときに
>tkinterが同胞されるらしい…ということまではわかったので
>pythonをインストールしなおそうかと思ってました💦
であればインストールしなおしの前に、今インストール済の Python での tkinter インストール状況確認からですね (^^;
ひきつづき、よろしくお願いいたします☆
沖津さんのコメント
(コメントID: 7861)
ありがとうございます😊
今後は先走らずに🤣
色んな可能性を考えて対応したいと思います。
小川 慶一さんのコメント
(コメントID: 7862)
経験たくさん積んでください。それで、ひっかかったら質問を。そのほうが早いかと。
沖津さんのコメント
(コメントID: 7863)
ありがとうございます。
いろいろあちこちぶつかりながら経験を積んでいきます🔥
୨୧・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・୨୧
高野さん
教えていただいたメッセージボックス表示のコード!
無事にエクセルからの実行できました!
exeファイルの実行もいろんなやり方があるとわかり
楽しかったです。
ありがとうございました😊
高野浩一さんのコメント
(コメントID: 7868)
楽しんでもらえたようで、よかったです。
皆様の意識の高さには、頭が下がります。