実現したいこと
VBAまたはPythonを使ってExcelで作成したシートをfujifilm複合機で自動FAXするようにしたい
発生している問題・分からないこと
現状は以下の通りです。
(Windows10、Office2021版Excel、複合機 FUJIFILM Apeos C2360を社内LANで接続)
① 作成したExcelシートを印刷メニューからプリンタ「FUJIFILM Apeos C2360 FAX」を選択し印刷ボタンを押します。
② 前面に「印刷中」のポップアップが表示され、その背面に「ファックス送信の設定/確認:ファイル名」ダイアログが開くのでこちらをアクティブにします。
③ [宛先番号/アドレス]欄にFAX番号を入力し[送信開始]を押します。
④ 宛先の一覧に自動的に追加しますという「警告」のポップアップが表示されるので「OK」を選択します。
①~④を自動化するためにVBAでコードを組んでみましたがプリンタ選択をし印刷を始めるところ(①)までしか分からず困っております。ファックス送信設定ダイアログにFAX番号を送って送信開始をさせるところがどのようにしたらいいのか分かりません。
該当のソースコード
VBA
1Sub Send_Fax() 2 Application.ActivePrinter = "FUJIFILM Apeos C2360 FAX on Ne06:" 3 ActiveSheet.PrintOut 4 5 'この先が分かりません… 6End Sub
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
VBAで無理ならPythonからVBAを起動し、ダイアログを操作できないか試しましたがうまくダイアログをつかめませんでした。
(Python 3.12.3、xlwings 0.31.4、pygetwindow 0.0.9、pyautogui 0.9.54 使用)
import xlwings as xw
import pygetwindow as gw
import pyautogui as pag
import time
path="C:/Users/xxxxxx/Desktop/FAX_TEST.xlsm"
wb=xw.Book(path)
title='FAX_TEST.xlsm'
e1=gw.getWindowsWithTitle(title)[0]
#Pythonから上記マクロを起動してます
macro=wb.macro('Send_Fax')
macro()
time.sleep(2)
# ↓ファックス送信ダイアログのタイトルです
title='ファックス送信の設定/確認:FAX_TEST.xlsm'
e2=gw.getWindowsWithTitle(title)[0]
time.sleep(2)
e2.activate()
time.sleep(2)
pag.write('03-xxx-xxxx')
エラーは発生しないのですが、ダイアログが表示された状態で止まっています。
ダイアログが前面に出ていますが、タイトルがグレーアウトしているのでアクティブにはなっていません。
補足
PythonからのGUI操作ではなく複合機のAPIを操作する方がいいのでしょうが、ネット上に分かりやすく紹介してありません。FujiFilmのHPにも参考にできる資料が無くて困っております。どなたかご教授お願い致します。
あなたの回答
tips
プレビュー