Windows7・付属のFAX・I-Oデータの外付けモデム
テストでFAX送信可能なのは、確認しています。
Access2010でVBAを作ろうとしています。
各業者に請求書をFAXで送信するようなものです。
ネット検索で旧環境(Access2000/FAX)のものを発見して作り変えようとしていたのですが、うまく
いかないので、どなたか同環境で現在うまく稼働されている方ご教授いただければと思います。
Option Compare Database
Option Explicit
'スナップショット保存用フォルダ
Const CON_WorkDir As String = "d:\workfax"
'スナップショット用ファイル名
Const CON_ファイル名 As String = "発注書"
Private Sub 送信_Click()
'------------------------------------------------------------
' 送信_Click
'
'------------------------------------------------------------
' On Error GoTo 送信_Click_Err
Dim W_FaxServer As FaxServer
Dim W_FaxDoc As FaxDoc
Dim W_RS As New ADODB.Recordset
Dim W_送信要求件数 As Integer, W_送信処理件数 As Integer
Dim W_SNPファイル名 As String
Dim W_相手先 As String, W_FAX番号 As String
Dim W_Ix As Long
'送信要求件数の確認
W_送信要求件数 = DCount("*", "送信ヘッダーW")
If W_送信要求件数 = 0 Then
Beep
MsgBox "送信する発注書はありません。", vbOKOnly + vbCritical
Exit Sub
End If
'スナップショット保存用フォルダをクリア
On Error Resume Next
Kill CON_WorkDir & "\*.*"
' On Error GoTo 送信_Click_Err
'レコードセット(送信ヘッダー)の準備
W_RS.Open "select * from 送信ヘッダーW order by コード", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'送信処理件数をクリア
W_送信処理件数 = 0
Do While Not W_RS.EOF
'送信情報を設定
W_送信処理件数 = W_送信処理件数 + 1
W_SNPファイル名 = CON_ファイル名 & Format(W_送信処理件数, "000") & "-" & Format(W_送信要求件数, "000") & _
"_" & W_RS.Fields("コード") & "_" & _
Format(Date, "mmdd") & Format(Time(), "hhnnss")
W_相手先 = CON_ファイル名 & Format(W_送信処理件数, "000") & "/" & Format(W_送信要求件数, "000") & " " & _
W_RS.Fields("コード") & ":" & W_RS.Fields("相手先")
W_FAX番号 = ""
W_Ix = 1
Do While W_Ix <= Len(W_RS.Fields("FAX番号"))
If IsNumeric(Mid(W_RS.Fields("FAX番号"), W_Ix, 1)) Then
W_FAX番号 = W_FAX番号 & Mid(W_RS.Fields("FAX番号"), W_Ix, 1)
End If
W_Ix = W_Ix + 1
Loop
'画面表示を更新
' Me.相手先.Caption = W_相手先
' Me.ガイド.Caption = "処理中 " & Format(W_送信処理件数, "#,##0") & "/" & Format(W_送信要求件数, "#,##0")
'相手先1件分のFAX文書をスナップショット形式で出力
Call B発注書_コードSet(W_RS.Fields("コード"))
DoCmd.OutputTo acReport, "R_発注書", acFormatPDF, CON_WorkDir & "\" & W_SNPファイル名 & ".pdf", False
'test FAX送信----------------------------------------------------ここから
W_FaxServer.Connect CreateObject("WScript.Network").ComputerName 'コンピュータ名’
Set W_FaxDoc = W_FaxServer.Create(CON_WorkDir)
W_FaxDoc.RecipientName = "送信者名"
W_FaxDoc.SenderTitle = "明細"
W_FaxDoc.DisplayName = "明細"
W_FaxDoc.FaxNumber = W_FAX番号
W_FaxDoc.Send
W_FaxServer.Disconnect
W_RS.Fields("リターンコード") = 0
W_RS.Update
W_RS.MoveNext
Loop
'レコードセット(送信ヘッダー)を閉じる
W_RS.Close
Set W_RS = Nothing
'画面表示を更新
' Me.相手先.Caption = ""
' Me.ガイド.Caption = ""
Beep
MsgBox "全てのFAXを送信要求しました。", vbOKOnly + vbInformation
'送信_Click_Exit:
' Exit Sub
'送信_Click_Err:
MsgBox Err.Description
' Resume 送信_Click_Exit
End Sub
上記のように組んでみたのですが、Sendでも素通りしてしまい、FAXに行きません。
outputでDドライブには、PDFはできているのですが、
いきずまっています
どなたかよろしくおねがいいたします。
No.1ベストアンサー
- 回答日時:
をベースにしつつ
中川システムさんとこのを参考に作成すればできるかと思います。
試験環境を作れないので、これ以上のアドバイスは出来ませんが
一つお願い事があります。
faxcomの参照設定を外して変数宣言の3行を下記にしても動きますか?
余力がありましたら教えてください。
'要参照設定 faxcom x.x type library (FXSCOM.dll)
' Dim lobjFaxSvr As New FAXCOMLib.FaxServer 'FaxServerオブジェクト
' Dim lobjFaxDoc As New FAXCOMLib.FaxDoc 'FaxDocオブジェクト
' Dim lstrPDFPath As String '送信用PDFファイルフルパス名
'↓
Dim lobjFax As Object '参照設定なしの場合、かも?未確認
Dim lobjFaxSvr As Object
Dim lobjFaxDoc As Object
Dim lstrPDFPath As String
Set lobjFax = CreateObject("FaxComEx.FaxDocument")
Set lobjFaxSvr = CreateObject("FaxServer.FaxServer")
この回答への補足
notfound404様早々のご回答ありがとうございます。
早速 >Dim lobjFax As Object '参照設定なしの場合、かも?未確認
>Dim lobjFaxSvr As Object
>Dim lobjFaxDoc As Object
>Dim lstrPDFPath As String
>Set lobjFax = CreateObject("FaxComEx.FaxDocument")
>Set lobjFaxSvr = CreateObject("FaxServer.FaxServer")
を試してみました。(確認faxcom xx type libraryの参照設定をはずしてですよね)
動くことは動きました。ただ最後ののMsgBoxで”オートメーションエラーです。エラーを特定できません”
とでてきました。
また、ステップインで1行づつ確認していくと、FaxDoc=Nothingのままになっているのですが、
何か気になります。
同じVBAをWinXP/Access2003の環境(掃出しをスナップショットで)では、動作確認は、できているのですが、WIN7・Access2010の場合"Fax.Send"では情報を送らないのでしょうか?
でも参考ULRのかたは、成功しているで、そこでもないのでしょうか?
もう少しなにかわかれば教えていただけないでしょうか?
大変ありがとうございます。
一度マイクロソフトのコミュニティーに先に問い合わせてみようと思います。
そちらで解決しなければ再度投稿させていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
写真をjpeg形式にて、メール添...
-
添付ファイルの容量について
-
JW-CADで作成し、メールで送信...
-
音楽を送るには?
-
winmail.datを見る方法を教えて...
-
メールの画像の「添付」と「画...
-
メールの添付資料が印刷できない
-
サンダーバードで動画を送る方...
-
メールの添付ファイル*.datとい...
-
ワードで作られた書類をメール...
-
送信メールにおける添付ファイ...
-
メールの添付ファイルがATT000×...
-
OutLook2007を使っています。先...
-
メール容量オーバーの為、送信...
-
ファイル→右クリック→メール受...
-
ぷららメールで画像を添付ファ...
-
メールに地図(MSNやGOOGLEの地...
-
WORDの差し込み文書の電子メー...
-
Outlook Expressの「送信済み」...
-
gmail で写真を縮小して添付し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メールの画像の「添付」と「画...
-
写真をjpeg形式にて、メール添...
-
ワードの一部をメール送信したい
-
添付ファイルの容量について
-
添付メールxlsxがdatに変換され...
-
メールの添付ファイルがATT000×...
-
メールに地図(MSNやGOOGLEの地...
-
winmail.datを見る方法を教えて...
-
gmail で写真を縮小して添付し...
-
JW-CADで作成し、メールで送信...
-
添付ファイルを1つ送信すると...
-
メール送信、zipファイル PDFに...
-
WORDの差し込み文書の電子メー...
-
DocuWorksのメール添付の方法
-
自動でメールを送信するCMDのバ...
-
送信したメールにブラウザの画...
-
Becky!で添付付きメールが送れない
-
蔵衛門でアルバムごとの送り方。
-
過去のメールを添付ファイルと...
-
メールに添付ファイルをつけて...
おすすめ情報