.NET特集
 N1.Web関連
 Q1.VS2005自作Visualizer
 R1.OpenCV

VB6特集
 S1.Net関連(95/98)
 S2.Net関連(NT)
 S3.コモンダイアログの拡張
 S4.MailSlot関連
 S5.RAS関連
 S6.セキュリティ関連
 S7.FAX制御(Win2000)
 S8.ADSIの利用
 T1.グラデーションバー
 T2.アイコンメニュー
 T3.バーコード(NW7)
 FAX制御(Win2000)
ここでは、VBより実現するのには苦労するFAX制御の方法を紹介します。 ただし、ここで記載している内容を実行するのには、Windows2000の環境が必要となりますので注意して下さい。 また、モデム設定などは適切に行われているものとします。

私が、ここで紹介する方法を知る前に、VBでFAX送信を実現した時にはWORD内に記述したマクロよりSendFax メソッドを利用する事により実現していましたが、VBとWORD間の連携がうまくいかず、 とても苦労したのを覚えています。しかし、ここで紹介する方法を利用すれば簡単にFAXを送信する事ができます。

実際に作成して稼動しているシステムとして、ある特定のフォルダを監視してファイルが投げ込まれたと同時に、 投げ込まれたファイルをFAX送信し、送信結果をメイルで返信するというものです。 送信先や送り主などの情報は、ファイル名を特殊な形式にする事により判断しています。 ASPでWebよりFAX送信する事も可能です。 また、受信FAXデータを監視し、発信元電話番号より会社名を特定して、 見やすいファイル名にして振り分ける事もできます。(受信データはランダムな名前が付けられるので分かりづらい。 996b2ab800.tifなど)

 前準備
まず、[プロジェクト]-[参照設定]で、faxcom 1.0 Type Library(faxcom.dll)をチェックします。 これにより、VBより簡単にFAXオブジェクトを利用する事が可能になります。
現在、faxcom 1.0 Type Libraryについてのドキュメントなどは私が知る限り公開されていないようですが、 1年ほど前には、USのMSDNでドキュメントが公開されていました。 これをもとにFAX制御を実現できるようになりましたので、紹介したいと思います。
 使用するオブジェクトのプロパティとメソッド
[オブジェクト ブラウザ]を表示して、FAXCOMLibを選択すれば、利用できるオブジェクト、 プロパティ、メソッドを参照する事ができます。 まずは、FAX送信を実現する為に利用するオブジェクトの内容を紹介します。
オブジェクト 説明
FaxDoc FaxDocオブジェクトはFAX送信のインフォメーションをセットします。
名前や受取人と送り主の情報、表紙設定など...
FaxJob  
FaxJobs  
FaxPort  
FaxPorts  
FaxRoutingMethod  
FaxRoutingMethods  
FaxServer FaxServerオブジェクトはFAXサービスに接続を行うメインオブジェクトです。 そして、 FaxJobs、FaxPorts、FaxDocオブジェクトなどを生成します。
FaxStatus  
FaxTiff  
 FAX送信方法
では、実際にFAXを送信するプログラムを作成してみましょう。 ここで作成するプログラムはFAX送信するのに必要最低限な機能しか実装しませんので、 色々なプロパティを設定して、どのような動作をするか確認していみるのがいいと思います。

作成するプログラムの仕様は、
・送信先FAX番号を入力(テキストボックス)
・送信するファイルを選択(コモンダイアログ)
・「送信」ボタンを押して送信(コマンドボタン)
というような簡単なものです。
それでは、このプログラムでFAX送信を行う「送信」ボタンが押された場合の処理を説明しましょう。

最初に行うことは、FAXサーバオブジェクトを初期化します。

 FaxServerの初期化 & 接続
Dim objFaxServer    As FaxServer
Dim objFaxDoc       As FaxDoc
' FAX サーバ初期化
Set objFaxServer = CreateObject("FaxServer.FaxServer")
これで、FAXサーバが初期化され、objFaxServerオブジェクトが利用できるようになります。
' FAX サーバ接続
Call objFaxServer.Connect("\\FAXSV")
次に、利用するFAXサーバと接続します。通常であればローカルコンピュータ名になります。
その他のコンピュータ名を指定できるかは不明です。

次に、送信するドキュメントを生成します。

' FAX ドキュメント生成
Set objFaxDoc = objFaxServer.CreateDocument("FaxDocument")
これで、ドキュメントが作成され、objFaxDocのプロパティを設定していきます。
' FAX ドキュメント情報設定
With objFaxDoc
    .DisplayName = "ドキュメント名"
    .FileName = txtFilePath.Text
    .FaxNumber = txtFaxNumber.Text
End With
ここで、注意する点は、FileNameプロパティに設定したファイル名です。オブジェクトのプロパティでも説明していますが、 ここで指定できるファイルは、FAXサーバ上で認識される識別子を持ったものだけです。
実行していただければお分かり頂けると思いますが、FAX送信の方法は、FileNameプロパティで指定されたファイルを オープンして、FAXプリンタに印字するという処理を自動で行うものなので、FAXサーバ上で認識される識別子でなくては なりません。
ちなみに、HTMLは無理でした。また、Excelファイルで複数のシートにまたがる場合は、 最初のシートのみが対象になります。 Word,Excelあたりが一番無難なファイル形式だと思います。
' FAX 送信
Call objFaxDoc.Send
これで、FAX送信の手続きが完了します。 この後の処理はFAXサーバ側の処理になりますので、VBから制御する事はできません。
この後、可能な処理としては、FAXキューのステータスを監視して、正常に送信されたなど分岐処理をする事ができます。
' FAX サーバ切断
Call objFaxServer.Disconnect
' FAX オブジェクト開放
Set objFaxServer = Nothing
お決まりの後始末です。
 今後の説明...
ちょっと簡単すぎる説明でしたね。^^; 今後は、説明していないオブジェクトの説明もしていきたいと思います。 このページで説明不足じゃ!と思われた方が多ければ、もう少し掘り下げて説明していきたいと思います。 ご意見・ご要望お待ちしています。m(__)m
 サンプル
サンプルダウンロード(16KB)

Copyright © 2005 tadahiro higuchi. All Rights Reserved.