2016-11-24 2 views
1

別のブックにコードを転送しようとしています。コードはworkbook1に完璧に動作しますが、workbook2上で実行するとExcel VBA Outlookオートメーションコードセグメントは、あるブックでは機能しますが、別のブックでは機能しません。

を定義していない

コンパイルエラーユーザー定義型を生成します。

ここに問題のコードがあります。

' Set up Outlook Namespace 
Set OL = CreateObject("Outlook.Application") 
Dim olNS As Outlook.Namespace 
Dim olFol As Outlook.Folder 

Set olNS = OL.GetNamespace("MAPI") 
Set olFol = olNS.GetDefaultFolder(olFolderInbox) 

' Current users address 
Address = olNS.Accounts.Item(1).SmtpAddress 

エラーはエラーはあなたがOLのために遅延バインディングを使用もののので、あなたはまだolNSのために事前バインディングを使用していると、おそらく2番目のブックにOutlookの参照を設定していない生成されolNS As Outlook.Namespace

+0

何 'Workbook'を?? ?あなたが持っているコードは** Outlook **に関連しています! –

+0

最初のブックと2番目のブックに含まれる参照を確認してください。 –

+0

@ShaiRado - [tag:excel-vba]でもかまいませんが、早期バインディングと後期バインディングを組み合わせる –

答えて

1

から来ています。

あなたがこれを行うその後、遅延バインディングを使用したい場合は、例えば:

Dim olNS As Object 
Set olNS = CreateObject("Outlook.Namespace") 

Dim olFol As Object 
Set olFol = CreateObject("Outlook.Folder") 

'etc... 

それとも2番目のブックでOutlookへの参照設定:

enter image description here

+0

ありがとうございました – AutomateMyJob

+0

いいえ心配 - 幸せコーディング:) –

関連する問題