2019/7/18 Update
関連記事はこちら。
【Airペイ】【楽天ペイ】A4プリンタでクレジットカード利用票を自動印刷 - Mac って何?それって美味しいの?
Airペイのクレジットカード利用票(ご利用控え)を非レシートプリンタで
自動印刷するようにしたのでメモとして残す。
ApplePay対応のiPhoneは持っていない
が、ApplePayしたい
で、Airペイ申し込んだ。
審査も1か月半くらいで通り、
端末が代引きで送られてきた。
テストでクレジットカード決済してみる。
楽しい。
でも、レシートプリンタがないと
クレジットカード利用票(ご利用控え)は印刷できず
メールでカード利用者に送る対応になる。
これはスマートじゃない。
Airペイのキャンペーンプリンタは2万円ちょっと。
これは結構安いほうだが、
インクジェットのA4複合機だって1万以下で買える時代だし
遊びで導入なのでお金はかけたくない。
クレジットや交通系カード決済頻度も低い、ほぼ無い。
レシートプリンタをヤフオクで漁るが数万円。
じゃあ、普通のA4プリンタで、レシート印刷をしよう。
=== 概要 ===
・普通のA4プリンタで印刷
・利用控えはA6用紙で作成
・利用控えメールを送信したら自動印刷
=== 流れ ===
1)Airペイでクレジットカード決済
↓
2)ご利用控えをレシート印刷用に用意したメールアドレスに送信
↓
3)PCのメールソフトOutlookでリアルタイム受信
↓
4)Outlookで仕分けルールを使い自動印刷
=== 説明 ===
1)と2)は問題ない。
3)はリアルタイム受信にするためIMAPで。
Outlookショートカットをスタートアップに入れ、PC起動時最小化で常駐させる。
起動時のメールフォルダも指定しておくとIMAPでリアルタイムにチェックできた。
(違うメールフォルダになってるとリアルタイムに見ない?かも)
仕分けルールに「スクリプトを実行する」を選べるようにレジストリ追加する。
マクロ実行のためにデジタル証明書を作成したり。
Wordテンプレートで用紙やフォントなどちょうどいい感じに定義しておく。
メール本文の、必要な部分のみ印刷。(連続した"="を目印に)
=== VBA ===
Public Sub PrintMailBody(ByRef Item As Outlook.MailItem)
Dim ExtText As String
Dim StaText As String
Dim EndText As String
Dim StaPos As Integer
Dim EndPos As Integer
StaText = String(5, "=")
EndText = String(20, "=")
StaPos = InStr(Item.Body, StaText)
EndPos = InStr(Item.Body, EndText)
ExtText = Mid(Item.Body, StaPos, EndPos - StaPos)
Const wdDoNotSaveChanges = 0
With CreateObject("Word.Application")
.Visible = False
With .Documents.Add("C:\Users\xxxxx\Documents\Office のカスタム テンプレート\クレジットカードご利用票.dot")
.Content.InsertAfter Text:=ExtText
.PrintOut False
.Close wdDoNotSaveChanges
End With
.Quit wdDoNotSaveChanges
End With
End Sub
=== VBA終わり ===
さいごに
が、こんなことでもなきゃ使わない。
現Officeでは機能隠しちゃっているし。
ネットで調べてなんとか実現した。
参考にさせていただいた方々に感謝です。