誰でも私のOutlookのカスタムフィールドの値を読む方法を教えてもらえますか?Outlookのカスタムフィールドの値を読み取る方法
今私は "UserProperties"と "ItemProperties"を試しました。両方ともエラーを投げている。私のサンプルコードとしては、この答えは、Outlookでの実験を以下に書き直されました事前
誰でも私のOutlookのカスタムフィールドの値を読む方法を教えてもらえますか?Outlookのカスタムフィールドの値を読み取る方法
今私は "UserProperties"と "ItemProperties"を試しました。両方ともエラーを投げている。私のサンプルコードとしては、この答えは、Outlookでの実験を以下に書き直されました事前
で
Microsoft.Office.Interop.Outlook.Application f = new Microsoft.Office.Interop.Outlook.Application();
NameSpace outlookNS = f.GetNamespace("MAPI");
MAPIFolder inboxFolder = outlookNS.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
foreach (object obj in inboxFolder.Items)
{
MailItem item = obj as MailItem;
if (item != null)
{
Console.WriteLine(item.UserProperties["test"].Value);
Console.WriteLine(item.ItemProperties["test"].Value);
}
}
感謝をたどります。
私のC#はあなたのしていることを知るのに十分ですが、私はまだC#からOutlookにアクセスしようとしていません。
Outlookモデルでは、Items
とItem
の両方が使用されます。私はあなたが試みている方法でitem
を使うことができるかどうかわかりません。
ユーザープロパティ "test"が存在しない場合、UserPropertiesはエラーをスローします。以下では、存在をテストする方法を示します。ユーザープロパティを追加して、修正されたメールアイテムを保存するのを忘れていますか?
以下は、Outlook VBAからのユーザープロパティへのアクセスを示しています。私は、InterOpモデルが構文と同じようになることを期待しています。私が知っている重要な違い:
Set
はC#では必須ではありません。Nothing
は、null
のVBAに相当します。変数:
以下は、名前が「TestProp」で、タイプがolTextのユーザープロパティを追加し、その値を「TestPropの値」に設定し、修正されたメールアイテムを保存します。保存せずに、前のステートメントは効果がありません。
With FolderItem
Set UserProp = .UserProperties.Add("TestProp", olText)
UserProp.Value = "Value for TestProp"
.Save
End with
以下は、メールアイテムに対するすべてのユーザープロパティの名前と値を直接ウィンドウに出力します。ユーザプロパティ「TestProp」はそうであれば、即時ウィンドウにその値を出力し、存在していること
For InxUP = 1 To .UserProperties.Count
Debug.Print " User prop " & InxUP & _
.UserProperties(InxUP).Name & " " & _
.UserProperties(InxUP).Value
Next
次のチェック。
Set UserProp = .UserProperties.Find("TestProp")
If Not UserProp Is Nothing Then
Debug.Print " TestProp " & .UserProperties("TestProp").Value
End If
が、これは
を役に立てば幸い