Python学院
メールマガジンバックナンバー

vol.27

  • コツ・知識
  • メールマガジン

Pythonで「ダイアログ」を活用してみよう!

今回のメルマガのテーマは
Pythonで「ダイアログ」を活用してみよう!
でございます。

Pythonを普段お使いの方でも、ダイアログを活用していない方は多いです。

しかし、Pythonによる本格的な自動化ツールを作成しようとすると、
ダイアログの活用は必須
といっても過言ではありません。

ダイアログを活用できるようになれば、プログラムの表現の幅が大きく広がります。

例えば、作成した自動化ツールを第三者に配布して使っていただく際、
エラーが発生したら、エラーが発生したことを自動化ツールの使用者に
伝えるために「エラーダイアログ」を表示する必要があります。

以下のようなものですね。




ちなみに、Pythonで作成した自動化ツールを第三者に配布する際、
「実行ファイル化」を行う必要があります。
ご興味ある方は、是非以下記事をご参照ください。
https://www.insource.co.jp/python-gakuin/mail-backnumber/vol18.html


Pythonを学習中の方、既に実務で活用している方は、是非ダイアログの
活用方法を理解することで、プログラムの表現の幅を広げましょう!

またこれからPythonの学習をしようとしている方も、
是非「Pythonでこんなこともできるのか」と新たな気づきを得て
いただければと思います!

当メルマガを通して、Pythonによるダイアログ活用ができるようになりましょう!



弊社では、ダイアログを用いたプログラム開発にも取り組んでいただける研修をご提供しております。
ダイアログの他にも、仮想環境・実行ファイルなど応用的な部分を学習されたい方には、以下の研修をオススメ致します!
・Python学院~Python応用講座(2日間) ※「ダイアログ」「実行ファイル」「仮想環境」や「スクレイピング」「ブラウザ操作」「Excel操作」について学べる!

Pythonの基本文法からじっくり学習されたい方には、以下研修がオススメです!
・Python学院~Excelのデータ転記からプログラミングを始める(2日間) ※「Python基本文法」と「Excel操作」について学べる!

(約5分で読めます)

~~~~~~~~~目次~~~~~~~~~
1. ダイアログとは
2. ダイアログの種類
3. 各種ダイアログの表示
4. 実用的なダイアログの活用
 ~ログインIDとパスワードを入力するダイアログ
~~~~~~~~~~~~~~~~~~~~


1. ダイアログとは


「ダイアログ」とは、ダイアログボックスの略称です。
プログラムの実行中に一時的に開かれる、小さなウィンドウのことです。

PC上で何か操作をしているときに、よく出てきますね。

例えばExcelのセルで以下のように実行すると、警告を示す
メッセージダイアログ」が表示されます。






Excel を保存せずに終了しようとすると、
以下のような「選択ダイアログ」が表示されます。




また、ユーザーからの入力を受け付けて、入力内容を元にプログラムの
処理内容を変える「入力ダイアログ」もよく使います。




様々な場面でよく出てくるこの「ダイアログ」ですが、
Pythonでも表示をさせることができます!


2. ダイアログの種類


ダイアログは、用途に応じて様々なものを使い分ける必要があります。
以下、よく使うダイアログを「4 つ」紹介します。

(1)メッセージボックス
(2)選択ダイアログ
(3)入力ダイアログ
(4)ファイル選択ダイアログ



(1)メッセージボックス





■主な用途
ユーザーに対して何らかのメッセージを伝える

■活用例
・フォーム送信を受け付けるプログラムで、
 入力値に不備があった時に警告メッセージを出す
・自動化プログラムを実行して、異常終了した時にエラーメッセージを出す


(2)選択ダイアログ





■主な用途
複数のボタンを表示して、ユーザーに何かしらの判断を行ってもらう

■活用例
 ・処理を続行して良いか、「はい・いいえ」の二択ダイアログを出す
 ・ファイルを保存して良いか、「保存・保存しない・キャンセル」の
  三択ダイアログを出す


(3)入力ダイアログ





■主な用途
 入力フィールドを表示して、ユーザーから何らかの値を受け取る

■活用例
 ・システムにログインするためのパスワードを入力してもらう
 ・自動配信メールの送信者名を入力してもらう


(4)ファイル選択ダイアログ





■主な用途
 処理対象のファイルを選択してもらう

■活用例
 ・顧客リストに記載の各顧客に対して提案書を
  自動生成する際に、使用するひな型ファイルを選択する
 ・Web サイトにアップロードするファイルを選択する


3. 各種ダイアログの表示


ダイアログの表示には、標準ライブラリの「tkinter」を利用します。

以下、よく使う「4つ」のダイアログについて、
表示のためのコードを確認してみましょう。

(1)メッセージボックス
(2)選択ダイアログ
(3)入力ダイアログ
(4)ファイル選択ダイアログ



(1)メッセージボックス


import tkinter as tk
import tkinter.messagebox as messagebox

tk.Tk().withdraw()
messagebox.showinfo('メッセージ', '処理が完了しました。')


(2)選択ダイアログ


import tkinter as tk
import tkinter.messagebox as messagebox

tk.Tk().withdraw()
messagebox.askokcancel('質問', '処理を続行しますか?')


(3)入力ダイアログ


import tkinter as tk
import tkinter.simpledialog as simpledialog

tk.Tk().withdraw()
password = simpledialog.askstring('パスワード入力', 'パスワードを入力してください')


(4)ファイル選択ダイアログ


import tkinter as tk
import tkinter.filedialog as filedialog

tk.Tk().withdraw()
filepath = filedialog.askopenfilename()



上記コードをコピペすれば、そのまま各種ダイアログを活用することができます。
表示する値を書き換えたりして、是非試してみてください!


4. 実用的なダイアログの活用
 ~ログインIDとパスワードを入力するダイアログ


それでは、実用的なダイアログのコードを確認してみましょう。

Pythonには「Web上からの情報取得自動化(スクレイピング)」を行うための
便利なツールが存在します。
「スクレイピング」と「ブラウザ自動操作」ができるようになると、Webサイトが
絡んだあらゆる業務を自動化することができます。

まだ学習経験のない方は、是非以下記事をご参照ください。
業務自動化に大いに役立つ技術です!

・Pythonによるスクレイピングの基本 ~Web上からの情報収集自動化
https://www.insource.co.jp/python-gakuin/mail-backnumber/vol15.html
・PythonによるWebブラウザ自動操作の基本 ~Seleniumを活用する
https://www.insource.co.jp/python-gakuin/mail-backnumber/vol21.html


ログインが必要なWebサイトからデータを自動取得する際、
「ブラウザの自動操作」を行い、「ログインID」と「パスワード」等の
情報を入力して、ログインする必要があります。

この際に、ダイアログを活用します。
例えば、以下のようなものです。




上記ダイアログを表示するためのプログラムを、以下ご紹介します。

プログラムの意味についてはここではご説明しませんが、ログインが
必要なWebサイトからのデータ取得を考えている方は、以下プログラムを
コピペすれば、上記見た目のダイアログを表示することができます。


またコードの意味を理解できれば、入力フォームを持つ、自分の好きな見た目の
ダイアログを作成することができます。
ダイアログを自由自在に作成できるようになれば、様々な場面で活用
できるようになります。

コードの意味を理解するためには、Pythonの標準ライブラリ「tkinter」を
学習する必要があります。
「tkinter」は、インストールをせずに標準で使えるライブラリです。
PythonでGUIを構築できる、非常に便利なライブラリです。

以下、弊社インソースからのプレゼントです!
是非ご活用ください!


import tkinter as tk

root = tk.Tk()

root.title('ログイン情報')
root.geometry('300x80')

input_id_label = tk.Label(text='ログインID')
input_id_label.grid(row=1, column=1, padx=10)

input_id = tk.Entry(width=30)
input_id.grid(row=1, column=2)

input_pass_label = tk.Label(text='パスワード')
input_pass_label.grid(row=2, column=1, padx=10)

input_pass = tk.Entry(show='*', width=30)
input_pass.grid(row=2, column=2)

button = tk.Button(text='ログイン', command=lambda: close_window(root, input_id, input_pass))
button.place(x=140, y=50)

def close_window(root, input_id, input_pass):
 global login_id
 global password
 login_id = input_id.get()
 password = input_pass.get()
 root.destroy()

root.mainloop()

print(login_id)
print(password)



最後に


以上、Pythonの標準ライブラリ「tkinter」を用いた「ダイアログの活用」
についてご説明いたしました。

ダイアログを活用できるようになれば、エラーダイアログやファイル選択ダイアログ
の表示等、プログラムの表現の幅を大きく広げることができます。

Pythonで本格的な自動化ツールを作成して第三者に使っていただく際など、
ダイアログは必須で活用することになるでしょう。


弊社で現在提供している「Python応用講座(2日間)」では、
「Excel操作の自動化」と、Webサイトが絡んだあらゆる業務を自動化する
ための技術「Webサイトからの情報取得自動化(スクレイピング)」と
「ブラウザの自動操作」に加えて、「ダイアログの活用」など実務で
Pythonを活用するために役立つ知識・スキルをレクチャーいたします。

「実務で活用するためのPythonの知識・スキルを体系的に学びたい!」、
「現場のエンジニアが活用している技術を学びたい!」という方は、
是非ページ下部の弊社研修PR情報に
お目通しをいただけますと幸いでございます。

また弊社Python研修にご興味ございましたら、是非以下Webページにもお目通しください。
https://www.insource.co.jp/bup/python-gakuin.html



最後までお読みいただき、ありがとうございました!
「インソースのPythonマガジン Vol.27」は、これで以上となります。

このメルマガでは今後も、Python学習に関するお役立ち情報、また社内のDX化を
主導するための具体的な方法や、弊社や他社様のPython活用の事例など、
ビジネスの現場で真に活かせる有益な情報の提供を行ってまいります。

それでは、次回もお楽しみに!

関連研修