2016-04-03 65 views
1

電子メールをタスクに変換し、そのタスクを共有タスクフォルダに配置しようとしています。私の同僚は私とフォルダを共有しましたが、私にフォルダへのアクセス権も与えてくれました。VBA - Outlook - 共有タスクリストでタスクを作成

これを達成するためにslipstickでスクリプトを利用しました。このコードは私の同僚のために働くが、私にとってはうまくいきません。

利用可能なフォルダの一覧を調べると、私の個人的な仕事の一覧は共有フォルダではなくフォルダとしてしか見ることができません。 (下のコードを使用)

共有タスクフォルダにタスクを追加する方法はありますか?

Public strFolders As String 

    Public Sub GetFolderNames() 
     Dim olApp As Outlook.Application 
     Dim olSession As Outlook.NameSpace 
     Dim olStartFolder As Outlook.MAPIFolder 
     Dim lCountOfFound As Long 

     lCountOfFound = 0 

     Set olApp = New Outlook.Application 
     Set olSession = olApp.GetNamespace("MAPI") 

     ' Allow the user to pick the folder in which to start the search. 
     Set olStartFolder = olSession.PickFolder 

     ' Check to make sure user didn't cancel PickFolder dialog. 
     If Not (olStartFolder Is Nothing) Then 
      ' Start the search process. 
      ProcessFolder olStartFolder 
     End If 

    ' Create a new mail message with the folder list inserted 
    Set ListFolders = Application.CreateItem(olMailItem) 
     ListFolders.Body = strFolders 
     ListFolders.Display 

    ' clear the string so you can run it on another folder 
     strFolders = "" 
    End Sub 

    Sub ProcessFolder(CurrentFolder As Outlook.MAPIFolder) 

     Dim i As Long 
     Dim olNewFolder As Outlook.MAPIFolder 
     Dim olTempFolder As Outlook.MAPIFolder 
     Dim olTempFolderPath As String 
     ' Loop through the items in the current folder. 
     For i = CurrentFolder.Folders.Count To 1 Step -1 

      Set olTempFolder = CurrentFolder.Folders(i) 

      olTempFolderPath = olTempFolder.FolderPath 

     ' Get the count of items in the folder 
      olCount = olTempFolder.Items.Count 

     'prints the folder path and name in the VB Editor's Immediate window 
      Debug.Print olTempFolderPath & " " & olCount 

      ' prints the folder name only 
      ' Debug.Print olTempFolder 

      ' create a string with the folder names. 
      ' use olTempFolder if you want foldernames only 
      strFolders = strFolders & vbCrLf & olTempFolderPath & " " & olCount 

      lCountOfFound = lCountOfFound + 1 

     Next 
     ' Loop through and search each subfolder of the current folder. 
     For Each olNewFolder In CurrentFolder.Folders 

      'Don't need to process the Deleted Items folder 
      If olNewFolder.Name <> "Deleted Items" Then 
       ProcessFolder olNewFolder 
      End If 

     Next 

    End Sub 

答えて

1

さらに、タスクフォルダには、同僚のメールボックスへのアクセス許可が必要です。 (受信トレイでも他のフォルダでもない)

メールボックスをプロファイルに追加する場合は、受け入れられた回答hereを参照してください。

メールボックスをプロファイルに追加しない場合は、GetSharedDefaultFolderの回答を参照してください。償還は必要ありません。

関連する問題