• 締切済み

まいと~くFAX エクセルマクロ

初心者です。 まいと~くCOLORFAXでサンプルファイルを使用していたのが、 別のパソコンで使えなくて困っています。 OS・Excel2003で同じですが、FAX6や8PROでは、 A1に入力した送信先に送信出来ません。 何処を直せば良いか教えて頂きたくお願い致します。 Sub FAX送信() If Cells(1, 1) = 0 Then MsgBox ("A1にダイアル先") Exit Sub End If Set MfRemote1 = CreateObject("MFREMOTE.MfRemoteCtrl.1") '「FAX」の起動 intResult = MfRemote1.Connect '送信先設定 intResult = MfRemote1.SendTo(Cells(1, ), "dummy:name", "dummy:title", "dummy:Company") '送付状無 blnResult = MfRemote1.CoverPage("") 'ドライバ名取得 strNewPrinter = MfRemote1.GetPrinterName strNewPort = MfRemote1.GetPrinterPort strOldPrinter = Application.ActivePrinter '2000のプリンタ設定方法は他のバージョンとは異なる If Application.Version = "9.0" And Application.Build = "2823" Then 'Excel 2000初期バージョン(SRなし) strNewPrinter = strNewPort & " の " & strNewPrinterElse strNewPrinter = strNewPrinter & " on " & strNewPort 'Excel97、Excel2000SR1 End If Application.ActivePrinter = strNewPrinter On Error Resume Next '印刷 Worksheets("明細表").PrintOut Application.ActivePrinter = strOldPrinter MfRemote1.DisConnect Rem For intCount = 0 To lstSendTo.ListCount - 1 Rem lstSendTo.Selected(intCount) = False Rem Next intCountEnd Sub End Sub

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

> また、オリジナルですら、現在の環境では送信できません。 オリジナルが通信できることを確認しないと問題点が特定できませんね。 通信できていたころと、現在の環境の違いを整理してみてください。 まさか、電話回線に接続していない、ということは?

Sep30
質問者

補足

返事が遅くなり、申し訳ありません。 ファイルが使えるパソコンとそうでないパソコンに距離がありまして・・・m(__)m 電話回線は大丈夫です。(笑) bin-chanさんのパソコンでは http://www.intercom.co.jp/support/mytalk/7/dde/macro.html にあるサンプルは使えますか? OSはどちらもXP エクセルは2003 一般電話回線です。 ただ、使えるパソコンでは、ネットワークでSOHOクライアントとして使っています。

全文を見る
すると、全ての回答が全文表示されます。
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

'送信先設定 intResult = MfRemote1.SendTo(Cells(1, ), "dummy:name", は '送信先設定 intResult = MfRemote1.SendTo(Cells(1, 1), "dummy:name", ですか?

Sep30
質問者

補足

ご指摘の通りです。m(__)m ユーザーフォームからの送信先選択でした。 また、オリジナルですら、現在の環境では送信できません。 PrivateSubcmdSendFax_Click() DimintCountAsInteger DimintResultAsInteger DimintSelectedAsInteger DimstrNewPrinterAsString DimstrNewPortAsString DimstrOldPrinterAsString DimblnResultAsBoolean ConstconName=1'氏名 ConstconFurigana=2'フリガナ ConstconTitle=3'敬称 ConstconCompany=4'会社名 ConstconSection=5'所属 ConstconPosition=6'役職 ConstconTelNumber=7'電話 ConstconFAXNumber=8'FAX '選択されているか確認 intSelected=0 ForintCount=0TolstSendTo.ListCount-1 IflstSendTo.Selected(intCount)=TrueThen '選択されていた intSelected=intSelected+1 EndIf NextintCount IfintSelected=0Then '一つも選択されていない MsgBox"送信先を選択して下さい.",vbExclamation ExitSub Else '送信確認 intResult=MsgBox(intSelected&"件の相手先に送信してもよろしいですか?",vbYesNo+vbQuestion) IfintResult=vbNoThen ExitSub EndIf EndIf '「まいと~くFAX」の起動 intResult=MfRemote1.Connect '念のため、送信先データのクリア intResult=MfRemote1.ClearSendFax '送信先設定 ForintCount=0TolstSendTo.ListCount-1 IflstSendTo.Selected(intCount)=TrueThen '選択されていた WithWorksheets("送信先データ") intResult=MfRemote1.SendTo(_ .Cells(intCount+2,conFAXNumber),_ .Cells(intCount+2,conName),_ .Cells(intCount+2,conTitle),_ .Cells(intCount+2,conCompany),_ .Cells(intCount+2,conSection),_ .Cells(intCount+2,conPosition),_ .Cells(intCount+2,conTelNumber),_ .Cells(intCount+2,conFurigana)) EndWith EndIf NextintCount '送付状は無し blnResult=MfRemote1.CoverPage("") 'プリンタドライバ名を取得 strNewPrinter=MfRemote1.GetPrinterName strNewPort=MfRemote1.GetPrinterPort strOldPrinter=Application.ActivePrinter 'Excel2000のプリンタ設定方法は他のExcelのバージョンとは異なります IfApplication.Version="9.0"AndApplication.Build="2823"Then'Excel2000初期バージョン(SRなし) strNewPrinter=strNewPort&"の"&strNewPrinter Else strNewPrinter=strNewPrinter&"on"&strNewPort'Excel97、Excel2000SR1 EndIf '以下Excel2000SR2非対応ソース 'IfEnviron("OS")="Windows_NT"Then'WinNTの場合 'ForExcel2000 'IfApplication.Version="9.0"Then'Excel2000 'strNewPrinter="NULLのMytalkFAX" 'Else 'strNewPrinter="MytalkFAXonNULL" 'EndIf 'Else'Win95,98の場合 'ForExcel2000 'IfApplication.Version="9.0"Then'Excel2000 'strNewPrinter="COM1:のMytalkFAX" 'Else 'strNewPrinter="MytalkFAXonCOM1:" 'EndIf 'EndIf Application.ActivePrinter=strNewPrinter OnErrorResumeNext '印刷 Worksheets("明細表").PrintOut Application.ActivePrinter=strOldPrinter MfRemote1.DisConnect ForintCount=0TolstSendTo.ListCount-1 lstSendTo.Selected(intCount)=False NextintCount frmSendTo.Hide EndSub

全文を見る
すると、全ての回答が全文表示されます。
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> A1に入力した送信先に送信出来ません。 > 何処を直せば良いか どこで、どのように送れないのか?を詳細に教えてください。 ・「A1にダイアル先」と表示されて終わってしまう。 ・何も起こらないが送付されない。 ・途中でエラーメッセージが表示され、止まってしまう。 など。 「ステップ イン」で1行ずつ実行させることができますか? メニューのツール>マクロ>マクロ>ステップ イン です。 キーボード奥の方の[F8]キーで1行ずつ実行させることができます。

Sep30
質問者

補足

補足要求有難うございます。 状態は まいと~くFAXが起動して、エラーメッセージは出ません。 そこからアドレスは選べます。 「ステップ イン」で実行しても同じです。 この、アドレスから選ぶ作業をわずらわしく思い、なんとか セルの値を取得して送信できないかとサンプルファイルに つけ足して使って来ました。 ご指導宜しくお願いいたします。m(__)m

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル マクロ ファイルの再起動

    ネットワークプリンター2台にワークシートを出力するコードで悩んでいます。 下記のコードを繰り返すと110枚前後でリソース不足が発生することが分かりました。 保存しないで終了し再度開くとリセットされることも分かりました。 保存しないで終了は出来るのですが、同じファイルを再度開くことはマクロで出来ますか? 宜しくお願い致します。 =================================== '全ての Book を保存しないで閉じる '最後に Excel も終了する Sub excel_Quit() Dim w As Workbook '全ての Book を保存したことにする (保存はしない) For Each w In Workbooks w.Saved = True Next 'Excel を終了する Application.Quit 'Book を閉じる ThisWorkbook.Close False End Sub ============================== Sub チェンジプリンター() '印刷切り替え処理 If Worksheets("DeviceRead-Write").Cells(6, 13).Value = 1 Then 'I6 が1ならEPSON_Aに印刷する(D10000上位2ビットが1) プリンターA出力 ElseIf Worksheets("DeviceRead-Write").Cells(6, 13).Value = 2 Then 'I6 が1ならEPSON_Bに印刷する(D10000上位2ビットが2) プリンターB出力 Else DoEvents End If End Sub Sub プリンターA出力(): 'プリンターAに印刷 Application.ActivePrinter = "EPSON_A on Ne01:" 'プリンターAを指定 Worksheets("form").PrintOut 'シートFormの印刷 Exit Sub End Sub Sub プリンターB出力(): 'プリンターBに印刷 Application.ActivePrinter = "EPSON_B on Ne00:" 'プリンターBを指定 Worksheets("form").PrintOut 'シートFormの印刷 Exit Sub End Sub

  • エクセルのマクロについて

    Sub ア_Click() Dim i As Long With ActiveSheet For i = 5 To .Cells(Rows.count, "C").End(xlUp).Row If InStr(.Cells(i, "C"), "ア") = 0 Then If InStr(.Cells(i, "D"), "ア(半角)") = 0 and .Cells(i,"D")<>"" Then MsgBox i & "行目" Cells(i, 2).Offset(0, -1).Value = "★" End If End If Next i End With End Sub このエクセルマクロはC列に「ア」があって、D列に「ア(半角)」の文字がない場合はメッセージというマクロなのですが、このマクロをア~ンまで同じ作業をしたいのですが、ひとまとめにマクロを組む事はできるのでしょうか?できる場合どのようにすれば良いでしょうか? 下記のようにして見たのですができませんでした。 Sub ア_Click() Dim i As Long With ActiveSheet For i = 5 To .Cells(Rows.count, "C").End(xlUp).Row If InStr(.Cells(i, "C"), "[ア-ン]") = 0 Then If InStr(.Cells(i, "D"), "[ア-ン](半角)") = 0 and .Cells(i,"D")<>"" Then MsgBox i & "行目" Cells(i, 2).Offset(0, -1).Value = "★" End If End If Next i End With End Sub

  • excelのマクロで2007だとエラーが。

    excel2003では動いていたマクロが2007では、エラーになってしまいます。 中断→デバッグ→再開→中断→デバッグ→再開、、、、 と中断しながらも10~20行ずつ進みます。 解決法がありましたら教えてください。 ※デバッグで確認すると「end if」で中断します。 Sub 仕分() Dim n As Long Dim nRow As Long Worksheets("シート名").Activate nRow = Range("A1").End(xlDown).Row For n = 2 To nRow If Cells(n, 6) = "条件1" Then Cells(n, 22) = "仕分け" ElseIf Cells(n, 6) = "条件2" Then Cells(n, 22) = "仕分けしない" ElseIf Cells(n, 6) = "条件1" And Cells(n, 7) = "条件2" Then Cells(n, 22) = "仕分け2" Else Cells(n, 22) = "OK" End If Next n End Sub

  • エクセルマクロ offsetの使い方

    Sub tess() With Worksheets("Sheet1") Cells(1,11)=Application.WorksheetFunction.Max(Range("A1:A10")) End With End Sub 上記でA1~A10のうちの最大値1つがA12に表示されます。 ここで上記コードに手を加えて、例えばA12にA8の”下のセル1つの値”を表示したいのですが、 Cells(1,11)=offset.(-1, 0).Application.WorksheetFunction.Max(Range("A1:A10")) と”offset(-1, 0)” を加えても動きません。WorksheetFunctionを加えても動きません。 offsetを入れる位置と使い方がわかりません。是非よろしくお願いいたします。(OS:WindowsXP、Excel2003)

  • エクセル マクロについて

    Sub Macro1() Set in1 = Application.InputBox(prompt:="入力範囲", Type:=8) i = in1.Offset(1, 0).Value Cells(1, 1).Value = i End Sub とするとエラーがでないのですが、 Sub Macro1() Set in1 = Application.InputBox(prompt:="入力範囲", Type:=8) i = in1.Offset(1, 0).Value Cells(1, 1).Value = i + 1 End Sub とするとエラーがでます。 i+1を表示するには、どう修正すればよいでしょうか。

  • エクセル マクロ 教えてください。

    sheet1に (a1=No. b1=月日 C1=項目 d1=収入 e1=支出 f1=摘要 G1=店名)項目を作りそれらをユーザーフォームを作り入力したいです。 この記述では上手く動けません。教えてください。 Private Sub CommandButton1_Click() Dim r As Long, 最終行 As Long, 項目行 As Long Dim re As String r = textboxs1.Value + 10 最終行 = Worksheets("入力").Range("B65536").End(xlUp).Row If r <= 最終行 Then re = MsgBox("訂正" & " " & "すでにデータが入力されています。" & Chr(13) & _ Chr(13) & "データを置き換えます。 本当に良いですか? ", _ Buttons:=vbYesNo + vbExclamation, Title:="注意!!") If re = vbYes Then With Worksheets("入力") .Cells(r, 2).Activate .Cells(r, 1).Value = TBox1.Value .Cells(r, 2).Value = TBox2.Value .Cells(r, 3).Value = ComboBox1.Value .Cells(r, 4).Value = TBox3.Value .Cells(r, 5).Value = TBox4.Value .Cells(r, 6).Value = TBox5.Value .Cells(r, 7).Value = ComboBox2.Value End With データクリア Exit Sub End If データクリア Exit Sub End If If r >= 最終行 + 1 Then r = 最終行 + 1 End If With Worksheets("入力") .Cells(r, 1).Value = TBox1.Value .Cells(r, 2).Value = TBox2.Value .Cells(r, 3).Value = ComboBox1.Value .Cells(r, 4).Value = TBox3.Value .Cells(r, 5).Value = TBox4.Value .Cells(r, 6).Value = TBox5.Value .Cells(r, 7).Value = CBomboox2.Value End With データクリア End Sub r = データNo + 10 With Worksheets("入力") .Activate .Cells(r, 2).Select TBox1.Value = .Cells(r, 1).Value TBox2.Value = .Cells(r, 2).Value ComboBox1.Value = .Cells(r, 3).Value TBox3.Value = Format(.Cells(r, 4).Value, "###,###") TBox4.Value = Format(.Cells(r, 5).Value, "###,###") TBox5.Value = .Cells(r, 6).Value ComboBox2.Value = .Cells(r, 7).Value End With Exit Sub End If If データNo > 最終行 - 10 Then データNo = 最終行 - 9 TBoxNo.Value = データNo データクリア End If End Sub

  • エクセル マクロ

    よろしくお願いします。 エクセルのテキストに従って勉強していて コード抜けがないことも確認したのですが 「ifに対するend ifがありません」と表示されます。 デバックを開いてもブレークポイントが表示されていないので よくわかりません。 どこが問題かご享受ください。 Private Sub CommandOK_Click() Dim Row As Integer Row = Range("D1").Value + 3 If 会員登録画面.氏名カナ.Value = Empty Then MsgBox ("氏名カナが空欄です") Exit Sub End If If 会員登録画面.氏名漢字.Value = Empty Then MsgBox ("氏名漢字が空欄です") Exit Sub If Not IsDate(会員登録画面.年.Value & _ "/" & 会員登録画面.月.Value & _ "/" & 会員登録画面.日.Value) Then MsgBox ("生年月日の形式が正しくありません") Exit Sub End If Cells(Row, 1).Value = 会員登録画面.会員番号.Value Cells(Row, 2).Value = 会員登録画面.氏名カナ.Value Cells(Row, 3).Value = 会員登録画面.氏名漢字.Value If 会員登録画面.男.Value = True Then Cells(Row, 4).Value = "男" Else Cells(Row, 4).Value = "女" End If Cells(Row, 5).Value = DateValue(会員登録画面.年.Value & _ "/" & 会員登録画面.月.Value & _ "/" & 会員登録画面.日.Value) Cells(Row, 6).Value = 会員登録画面.都道府県.Value Cells(Row, 7).Value = 会員登録画面.電話番号.Value If 会員登録画面.スポーツ観戦.Value = True Then Cells(Row, 8).Value = "○" End If If 会員登録画面.映画鑑賞.Value = True Then Cells(Row, 9).Value = "○" End If If 会員登録画面.読書.Value = True Then Cells(Row, 10).Value = "○" End If If 会員登録画面.釣り.Value = True Then Cells(Row, 11).Value = "○" End If If 会員登録画面.ドライブ.Value = True Then Cells(Row, 12).Value = "○" End If If 会員登録画面.旅行.Value = True Then Cells(Row, 13).Value = "○" End If Range("D1").Value = Range("D1").Value + 1 Call 画面初期化 End Sub

  • エクセルのマクロをスッキリさせたい

    Sub 範囲指定()   A下 = Range("A65536").End(xlUp).Row   B下 = Range("B65536").End(xlUp).Row   If A下 > B下 Then    仮下 = A下   Else    仮下 = B下   End If   If 仮下 > 4 Then    下 = 仮下   Else    下 = 4   End If   Range(Cells(4, 3), Cells(下, 3)).Select   Range("C3").Copy.Paste End Sub もっと良い方法が有ると思うのですが、どうしたら良いでしょうか。

  • エクセルマクロ 特定の文字列を含む行のみを残す (マクロ修正)

    以下のマクロは、EXCEL2003で 「特定の文字列が含まれている列を削除する」動作をするマクロです Sub Macro1() Const col As String = "A" '文字列が入力されている列 Dim idx As Long Dim keyWord keyWord = Application.InputBox("削除対象の文字列は?", Type:=2) If TypeName(keyWord) <> "Boolean" And Len(keyWord) > 0 Then   For idx = Cells(65536, col).End(xlUp).Row To 1 Step -1     If InStr(Cells(idx, col).Value, keyWord) > 0 Then '    If Application.CountIf(Rows(idx), "*" & keyWord & "*") > 0 Then       Rows(idx).Delete     End If   Next idx End If End Sub このマクロを、 「特定の文字列が含まれている行のみを残し、それ以外を削除する」 というマクロに変更したいと思っています。 是非ご回答お願いいたします。

  • エクセルマクロの部分比較について

    こんばんわ! エクセルマクロのLike演算子を使用した部分比較をしようとしたのですが下記のtes1は動いたのですが、tes2が動きません。 動くマクロ Sub tes1() For i = 5 To 20 Step 1  If Cells(i, 1) Like "*" & Range("b1") & "*" Then   Cells(i, 3) = 1  End If Next i End Sub 動かないマクロ Sub tes2() Dim name As String name = Range("b1") For i = 5 To 20 Step 1 If name Like "*" & Cells(i, 1) & "*" Then Cells(i, 3) = 1 End If Next i End Sub まだ、理解が足りていないところが多く、動かない理由が分からないですが、よろしければ、説明を兼ねてアドバイスのほどよろしくお願いいたします。

専門家に質問してみよう