質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

1回答

8845閲覧

PC-FAXを使用したVBAは実現可能ですか?

aya_vvv

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/12/23 00:44

前提・実現したいこと

現在、毎月100件以上の通知書を紙で印刷し、折って封筒に入れ発送しています。

この手作業をなくすべく、VBAで送付リストから必要なデータ(会社名や金額など)を
通知書のひな形へ転記し、各FAX番号へFAX送信できるのか挑戦している最中です。

なんとか、取引先リストからデータをひな形へ転記でき、別シートへ1つずつ追加することは実現できましたが、その後のFAXがどのようなコードを組めばいいかわかりません。

ActiveSheet.PrintOut
↑のコードをいれ添付画像のところまでは進めるのですが、ここから指定したいFAX番号を選択し送信するところがわかりません。

FAXで使用する機械はリコーのIM C5500という複合機です。
インターネット経由でPC-FAXの送信は確認できています。

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Ricohの複合機なら、PCから複合機を操作できるAPIがあるようです。

Ricoh Developer Program ドライバAPI PC FAX| リコー

これを使えば、自動送信も可能なようです。
ただし、メーカーとの契約が必要なようです。

私自身は利用してませんので「ようです」ばかりですみません。

他の方法としては、PC自動化ツールを使って、FAX送信ダイアログを操作する方法てす。

私はUWSCを使ってCANONの複合機からFAXを自動送信しています。

投稿2021/12/23 03:10

hatena19

総合スコア33795

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aya_vvv

2021/12/23 05:21

丁寧なご回答ありがとうございます。 載せていただいているURLへ飛び、いろいろ調べたところ、リコーさんがサンプルプログラムを載せていただいていたのですが、エラーが発生します ' PC-FAX API関数の宣言 Declare Function IfxOpenEx Lib "Ifxapi32" (ByVal ppapa As String) As Long Declare Function IfxSender Lib "Ifxapi32" (ByVal hifx As Long, ByVal num As Long, ByVal FAX As String) As Long Declare Function IfxStartTime Lib "Ifxapi32" (ByVal hifx As Long, ByVal TimeUse As Long, ByVal Time As Long) As Long Declare Function IfxTTI Lib "Ifxapi32" (ByVal hifx As Long, ByVal iparam As Long) As Long Declare Function IfxGetTrackID Lib "Ifxapi32" (ByVal hifx As Long, ByVal TrackID As String, ByVal size As Long) As Long Declare Function IfxLock Lib "Ifxapi32" (ByVal hifx As Long) As Long Declare Function IfxUnlock Lib "Ifxapi32" (ByVal hifx As Long) As Long Declare Function IfxClose Lib "Ifxapi32" (ByVal hifx As Long) As Long Declare Function IfxGetSendResult Lib "Ifxapi32" (ByVal ip As String, ByVal TrackID As String, ByRef result As IfxSendResult) As Long Declare Function IfxForcedUnlock Lib "Ifxapi32" (ByVal hifx As Long) As Long 'Declare Function IfxCheckPrinterDriver Lib "Ifxapi32" (ByVal prn As String) As Boolean "Ifxapi32"→は私用しているPCが64ビットの場合、単純に"Ifxapi64"に変更するだけで よろしいのでしょうか? 質問ばかりですみません。 現実的に無理な場合は、Winacterを用いてFAX送信自動化できればと思っています。 UWSCとお教えいただいたのですが、同じようにRPA化できるシステムなのでしょうか? その場合サンプルシナリオなどもしお教えいただければ大変ありがたいです。。
hatena19

2021/12/23 06:07

下記に64bit OS で使用するコードがあります(下にスクロールすると出てきます。)。 http://www.iwatax.jp/10_it/ittools_top.html#tool22 リコーの複合機は使用していないのでこれ以上のアドバイスは難しいです。 当方ではUWSCでキヤノンの複合機をVBAで自動化しています。 UWSCでFAXダイアログの操作を記録するとスクリプトコードができますので、そのコードを修正して、VBAからShell関数で呼び出します。呼び出すときにコマンドラインから引数としては値を渡すことができますので、宛先名やFAX番号をスクリプトに渡すようにします。 VBAで呼び出す場合は、ActiveSheet.PrintOut でFAXダイアログを出してから、UWSCを呼び出します。 あくまでキヤノンの複合機でのものですので、リコーでもうまくいくかは分かりません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問