こんにちは、ウチダです。
休日に趣味でプログラミングを独学し、
家計簿や顧客リストの作成、ブログでの
データ分析に役立てています。
副業ではFXの自動売買プログラムを販売しています。
プログラミング言語Pythonを勉強したいけど、
「仕事に使えるプログラムを作れるの?」
「本当に効率化できるの?」
と悩んでいませんか?
実はPythonは仕事の効率化にとっても
役立つんです。
なぜこんなことが言えるかといえば
私が実際に保険代理店でPythonを使っているからです。
この記事ではPythonを仕事に使う例として
書状づくりのプログラムを紹介します。
この記事を読み終えると、
Pythonを使ってできることが
具体的にイメージできるようになります。

Pythonを仕事に使ってできること!書状をプログラムでつくろう

今回は実際に勤務先の保険代理店で使っている
Pythonのプログラムです。
ご契約者様に保険の更新を案内するために
書状を出しています。
その際、基にするデータはこちらです↓

満期日、ご契約者様の名前、保険の種目、
旧証券番号、保険料などが一覧になっている
.xlsxファイルです。
これをプログラムで処理して、
こんな書状にします↓
表面

裏面

※勤務先の情報を伏せるため、内容を一部変更しています。
ご契約者様のお名前や保険種目は
自動で書き換えるようになっています。
お客様ごとに作成し、両面印刷して
郵送で送る形です。
以前は手書きで名前などを入れていたため、
毎回2時間ほどかかっていたようです。
このプログラムなら5秒で処理できるので、
かなり楽になると思います。
Pythonを仕事に使った例でのプログラムのコード
#ライブらいのインポート
from pathlib import Path
from openpyxl import load_workbook, Workbook
from openpyxl.styles.alignment import Alignment
from openpyxl.styles import Font
from openpyxl.drawing.image import Image
import datetime
#エクセルファイルの読み込み
wb = load_workbook('renew.xlsx')
ws = wb['Sheet1']
#エクセルのデータをプログラムで読み込める用に処理する
row_list = []
for row in ws.iter_rows(min_row=2, max_row=ws.max_row,
min_col=1, max_col=ws.max_column):
cell_list = [cell.value for cell in row]
row_list.append(cell_list)
today = datetime.date.today() #今日の日付を取得
date = today.strftime("%Y年%m月%d日") #日付の書式を変更
for i in row_list:
wb.create_sheet(title=str(i[4])) #旧証券番号のシートを作る
ws_new = wb[str(i[4])]
ws_new.column_dimensions['B'].width = '80' #B列の幅を30文字に設定
ws_new.cell(2,2).value = date #日付を記入
ws_new.cell(2,2).alignment = Alignment(horizontal='right') #右寄せ
ws_new.cell(2,2).font = Font(size=12)
ws_new.cell(3,2).value = i[2] + ' 様' #契約者名を記入
ws_new.cell(3,2).font = Font(size=14, underline='single')
senders = ['合同会社マネーテック',
'本社',
'〒郵便番号',
'住所',
'TEL ',
'FAX ',
'e-mail ',
'定休日'
]
for num in enumerate(senders):
ws_new.cell(num[0]+4,2).value = num[1] #送付元を記入
ws_new.cell(num[0]+4,2).font = Font(size=12)
ws_new.cell(num[0]+4,2).alignment = Alignment(horizontal='right') #右寄せ
ws_new.cell(13,2).value = '〜保険契約の更新について(案内)〜' #タイトルを記入
ws_new.cell(13,2).font = Font(size=14)
ws_new.cell(13,2).alignment = Alignment(horizontal='center') #中央寄せ
n = i[0].split('・')
expire = '{0}年{1}月{2}日'.format(n[0], n[1], n[2])
sentences = ['いつもお世話になっております。',
'{0}様にご契約いただいている{1}について、満期日が'.format(i[2],i[1]),
'{0}となっております。'.format(expire) ,
'',
'近日中に保険会社より継続証が送付されますので、ご契約内容',
'をご確認の上、変更事項(下記に記載)がございましたらマネー',
'テックまでご連絡をお願い致します。',
'',
'更新日(満期日)までに変更事項のご連絡がない場合は、更新前',
'と同様のご契約内容にて自動更新されますので、ご了承ください。',
'',
'今後ともどうぞよろしくお願い致します。'
]
for ber in enumerate(sentences):
ws_new.cell(ber[0]+15,2).value = ber[1]
ws_new.cell(ber[0]+15,2).font = Font(size=14)
ws_new.cell(28,2).value = '変更事項のチェックリスト' #タイトルを記入
ws_new.cell(28,2).font = Font(size=14)
ws_new.cell(28,2).alignment = Alignment(horizontal='center') #中央寄せ
check_list = ['以下の項目に1つでも該当したら、保険のぽるとまでご連絡を',
'お願い致します。',
'',
'□住所・電話番号が変わった。',
'□家族構成に変化があった。',
' (例:お子様の誕生など)',
'□保障内容を変更したい。',
'□契約者、被保険者を変更したい。',
'□口座・クレジットカードを変更したい。',
'□他の保険会社と比較したい。',
'',
'★自動車保険に加入されている方は以下もチェック★',
'□運転免許証の色が変わった。',
' (例:ゴールドからブルーになったなど)',
'□運転者の範囲を変えたい。',
'(例:帰省した息子を追加したいなど)'
]
for m in enumerate(check_list):
ws_new.cell(m[0]+30,2).value = m[1]
ws_new.cell(m[0]+30,2).font = Font(size=14)
'''
ウラ面に写真とPRを記載する
'''
ws_new.row_dimensions[47].height = 40
ws_new.cell(47,2).value = 'プログラミングで投資を攻略する' #タイトルを記入
ws_new.cell(47,2).font = Font(color='FF00FF', size=28)
ws_new.cell(47,2).alignment = Alignment(horizontal='center') #中央寄せ
image_file = '/home/uchida/ドキュメント/start_business/for_porto/1_renew_letter/hoken_port2.png'
image = Image(image_file)
image.width = 500
image.height = 300
ws_new.add_image(image, 'B48')
messages = ['合同会社マネーテックは投資向けの',
'「プログラミングスクールを行っています。',
''
]
for j in enumerate(messages):
ws_new.cell(j[0]+64,2).value = j[1]
ws_new.cell(j[0]+64,2).font = Font(size=14)
ws_new.cell(67,2).value = 'プログラミングスキルで資産を増やしていきたい' #タイトルを記入
ws_new.cell(67,2).font = Font(size=14, bold=True)
texts = ['',
'2022年に稼ぐ力を身につけませんか?',
'これからも{0}様が安心して人生を旅できるように応援します。'.format(i[2]),
'',
]
for t in enumerate(texts):
ws_new.cell(t[0]+68,2).value = t[1]
ws_new.cell(t[0]+68,2).font = Font(size=14)
ws_new.cell(72,2).value = 'マネーテックに相談できること!' #タイトルを記入
ws_new.cell(72,2).font = Font(size=14)
ws_new.cell(72,2).alignment = Alignment(horizontal='center') #中央寄せ
image_file2 = '/home/uchida/ドキュメント/start_business/for_porto/1_renew_letter/porto_business.png'
image2 = Image(image_file2)
image2.width = 500
image2.height = 300
ws_new.add_image(image2, 'B73')
ws_new.cell(89,2).value = 'お気軽にご連絡・ご来店ください。'
ws_new.cell(89,2).font = Font(size=14)
#ファイルを保存する
wb.save('test.xlsx')
プログラムはopenpyxlを使っています。
renew.xlsxという顧客リストのエクセルファイルを読み込み、
プログラム上で処理できるようにします。
row_listにエクセルデータを1行ずつ
リスト型で取り込み、
あとはfor文内で書状を作っています。
このプログラムはこちらの本を読んで作りました。
今回はPythonを仕事に使った一例として、
書状づくりのプログラムを紹介しました。
ただ、本だけでは一定のレベルまでしか
スキルアップできません。
もしPythonを本気で学びたいと思ったら
プログラミングスクールを検討することを
おすすめします。
稼げるエンジニアになるための
プログラミングスクール↓

ここまで読んでくださり、ありがとうございました。^^