2017-04-07 57 views
1

特定の範囲をOutlookにコピーするマクロを作成したい(画像あり)。しかし、私はそれがしたいようにそれが動作しません...メールをMailEnvelope(VBA、Excel)で送信

Sub Send_Range_Or_Whole_Worksheet_with_MailEnvelope() 
'Working in Excel 2002-2016 
Dim AWorksheet As Worksheet 
Dim Sendrng As Range 
Dim rng As Range 

On Error GoTo StopMacro 

With Application 
    .ScreenUpdating = False 
    .EnableEvents = False 
End With 

'Fill in the Worksheet/range you want to mail 
'Note: if you use one cell it will send the whole worksheet 
Set Sendrng = Worksheets("EMAIL").Range("B2:W41") 

'Remember the activesheet 
Set AWorksheet = ActiveSheet 

With Sendrng 

    ' Select the worksheet with the range you want to send 
    .Parent.Select 

    'Remember the ActiveCell on that worksheet 
    Set rng = ActiveCell 

    'Select the range you want to mail 
    .Select 

    ' Create the mail and send it 
    ActiveWorkbook.EnvelopeVisible = True 
    With .Parent.MailEnvelope 

     ' Set the optional introduction field thats adds 
     ' some header text to the email body. 
     .Introduction = "This is test mail 2." 

     With .Item 
      .To = ThisWorkbook.Sheets("EMAIL").Range("Z1").Value 
      .CC = ThisWorkbook.Sheets("EMAIL").Range("Z1").Value 
      .BCC = "" 
      .Subject = ThisWorkbook.Sheets("EMAIL").Range("D1").Value 
      .Display 
     End With 

    End With 

    'select the original ActiveCell 
    rng.Select 
End With 

'Activate the sheet that was active before you run the macro 
AWorksheet.Select 

StopMacro: 
With Application 
    .ScreenUpdating = True 
    .EnableEvents = True 
End With 
ActiveWorkbook.EnvelopeVisible = False 

End Sub 

MailEnvelopeはわずか1秒間表示され、なぜ誰かが私に教えてください、何も起こりませんその後することができますか?それは私のために動作しないように見えます。

私は.sendを.displayに置き換えましたが、何も変わりません。 Alternativly RNGtoHTMLコードを使用しようとしましたが、このコードでは画像はコピーされません(シートに「EMAIL」という動的リンク画像があります)。

答えて

0

あなたの問題はあなたが

.Display

を使用することですが、あなたは、送信を待ってから、送信せずに封筒を閉じないでください: ActiveWorkbook.EnvelopeVisible = Falseの

  • ちょうどコメントそれとダイアログはあなたがそれを送るためにそこにとどまるでしょう。

あなたが.Sendを使用する必要がある、または.Displayがまったく動作しない場合:管理者モードでOutlookを実行している

  • は "*それ
  • はプログラムによるアクセスの設定MS Outlookを変え解決なら、私に警告..」私にとって一種のそれを解く(迷惑なダイアログが表示さ.Sendを使用した場合)
  • はあなたのエラー

    のMsgBox Err.descriptioをデバッグするために最後にメッセージボックスErr.descriptionを置きますn個 End Subの

  • は、まだ実際のソリューションを把握しようとしています。

メール送信マクロは私のために働いていましたが、しばらくしてから停止しました。なぜ本当にわからない。私はさらにいくつかのレジストリキー(https://social.technet.microsoft.com/Forums/ie/en-US/e2c89fec-beb3-4224-a6cb-112704406907/cannot-change-programmatic-access-security?forum=outlook)を追加しようとしました。しかし、それはうまくいかなかった。

*一番面白いのは、あなたがプログラムによるアクセスのためのMS Outlookの警告(https://www.slipstick.com/developer/change-programmatic-access-options/) を無効にした場合ということです - adminにMS Oを開始し、その設定に行く - それはwarnig表示を停止するだけでなく、要求と機能を停止します。最近の通常のマイクロソフトの行動....

関連する問題