Outlook 予定表 分類を探りたかったので、
Outlook 予定
https://msdn.microsoft.com/ja-jp/library/cc446751.aspx
のプロパティから
分類 カテゴリー?なんてプロパティがあるので、
AppointmentItem.Categories プロパティ (Outlook)
https://msdn.microsoft.com/ja-jp/vba/outlook-vba/articles/appointmentitem-categories-property-outlook
'Display the Show Categories dialog box
olApptItem.ShowCategoriesDialog
MsgBox olApptItem.Categories
を入れて、テストしてみます。
いつもの右往左往した酔っ払いテスト動画
【Outlook VBA】予定表 AppointmentItem 分類 Categories を探ったテスト動画【三流君】 - YouTube
www.youtube.com
"分類項目 赤"など選択した分類が表示されるので、
.Categories = "分類の文字列"
などで使えると思います。
おまけ
複数の分類は
.Categories = "分類項目 赤,分類項目 黄"
と、カンマで区切った文字列で複数選択もできるみたいです。
下記の質問をいただきました。
一つのメールから以下の3つのAppointmentItemを作ろうとしております。
1、締切当日
2、締切2日前のワーニング
3、締切5日前のワーニング
と一つの資料作成依頼メールをおかずに、3つAppointmentItemで
自分のスケジュール表にいれるべく、下記まで、コーディング致しました。
Private Sub CommandButton1_Click() Dim myAppoitem As Object Dim myAppoitem2 As Object Dim myAppoitem3 As Object Dim Myday1 As Integer Dim Mymonth1 As Integer Dim Myyear1 As Integer Dim Myday2 As Integer Dim Mymonth2 As Integer Dim Myyear2 As Integer Dim Myday3 As Integer Dim Mymonth3 As Integer Dim Myyear3 As Integer Dim Myactivemail As Object Dim Mykenmei As String Dim MyBody As String Set Myactivemail = Application.ActiveInspector.CurrentItem Mykenmei = Myactivemail.Subject MyBody = Myactivemail.Body Myday1 = Day(ComboBox1.Value) Mymonth1 = Month(ComboBox1.Value) Myyear1 = Year(ComboBox1.Value) Set myAppoitem = Application.CreateItem(olAppointmentItem) myAppoitem.Subject = "備忘〆" & Mykenmei myAppoitem.Body = MyBody myAppoitem.Start = Mymonth1 & "/" & Myday1 & "/" & Myyear1 & " 10:00 AM" myAppoitem.Duration = 30 myAppoitem.ReminderMinutesBeforeStart = 5 myAppoitem.ReminderSet = True SetApptColorLabel myappoitemt, 2 myAppoitem.Save Myday2 = Day(ComboBox2.Value) Mymonth2 = Month(ComboBox2.Value) Myyear2 = Year(ComboBox2.Value) Set myAppoitem = Application.CreateItem(olAppointmentItem) myAppoitem.Subject = "備忘①" & Mykenmei myAppoitem.Body = MyBody myAppoitem.Start = Mymonth2 & "/" & Myday2 & "/" & Myyear2 & " 10:00 AM" myAppoitem.Duration = 30 myAppoitem.ReminderMinutesBeforeStart = 5 myAppoitem.ReminderSet = True myAppoitem.Save SetApptColorLabel myappoitemt, 2 Myday3 = Day(ComboBox3.Value) Mymonth3 = Month(ComboBox3.Value) Myyear3 = Year(ComboBox3.Value) Set myAppoitem = Application.CreateItem(olAppointmentItem) myAppoitem.Subject = "備忘②" & Mykenmei myAppoitem.Body = MyBody myAppoitem.Start = Mymonth3 & "/" & Myday3 & "/" & Myyear3 & " 10:00 AM" myAppoitem.ReminderMinutesBeforeStart = 5 myAppoitem.ReminderSet = True myAppoitem.Duration = 30 myAppoitem.Save MsgBox "ほぞんかんりょう" Unload UF001 End Sub
さて、そこでなんですが、Appointmentitem1を
赤色に、2を黄色に、3を青色に分類したいのですが、
これが、調べても調べてもできません。
すみませんが、教えて頂けませんでしょうか。
と、
質問をもらったので、挑戦してみます。
分類を探りたかったので、
Outlook 予定
https://msdn.microsoft.com/ja-jp/library/cc446751.aspx
のプロパティから
分類 カテゴリー?なんてプロパティがあるので、
AppointmentItem.Categories プロパティ (Outlook)
https://msdn.microsoft.com/ja-jp/vba/outlook-vba/articles/appointmentitem-categories-property-outlook
'Display the Show Categories dialog box
olApptItem.ShowCategoriesDialog
MsgBox olApptItem.Categories
を入れて、テストしてみます。
いつもの右往左往した酔っ払いテスト動画
【Outlook VBA】予定表 AppointmentItem 分類 Categories を探ったテスト動画【三流君】 - YouTube
www.youtube.com
"分類項目 赤"など選択した分類が表示されるので、
.Categories = "分類の文字列"
などで使えると思います。
おまけ
複数の分類は
.Categories = "分類項目 赤,分類項目 黄"
と、カンマで区切った文字列で複数選択もできるみたいです。
なので、
>Appointmentitem1を
>赤色に、2を黄色に、3を青色に分類したいのですが、
myAppoitem.Categories = "分類項目 赤"
myAppoitem.Categories = "分類項目 黄"
myAppoitem.Categories = "分類項目 青"
を入れればできるかなぁ。
"分類項目 赤"が私の環境で、違う文字列かもしれないので、
olApptItem.ShowCategoriesDialog
MsgBox olApptItem.Categories
などで、見てください。
解決の糸口となれば幸いです。 三流プログラマー Ken3
'分類を探ったテストプログラム Option Explicit Sub aaaa() Dim yoteiNAME '予定の名前 yoteiNAME = InputBox("予定の題名・件名は?") '入力させる 'Outlookの起動 アプリケーション を 作成する Dim oApp 'As Outlook.Application OutlookのApplication オブジェクトを入れる Dim myNameSpace 'As Outlook.NameSpace 名前のスペースと言われても、、 Dim myFolder 'As Outlook.Folder フォルダー指定 'outlook 起動をCreateObjectで ※これだと複数起動してしまうがご勘弁を Set oApp = CreateObject("Outlook.Application") '呪文1 名前空間 の 指定 と言っても、.GetNamespace("MAPI")しただけ Set myNameSpace = oApp.GetNamespace("MAPI") 'olFolderCalendar 9 予定フォルダ ※カレンダー '次は作業フォルダーの指定(.GetDefaultFolder) と 表示(.Display) Set myFolder = myNameSpace.GetDefaultFolder(9) '規定のフォルダー olFolderCalendar=9 指定 myFolder.Display '表示 いつものクセで .Visible = True とやりがちだけど '通常サイズ olNormalWindow=2 で表示(ほかに olMaximized=0,olMinimized=1) oApp.ActiveWindow.WindowState = 2 'olNormalWindow=2 を セット 'ここから予定の作成 'CreateItem(1) とolAppointmentItem=1 1を指定しただけ。 Dim aITEM 'As Outlook.AppointmentItem '予定、アポ 'CreateItemで予定の作成 Set aITEM = oApp.CreateItem(1) 'olAppointmentItem=1 1予定・アポを指定 aITEM.Display '編集画面表示 'データのセット aITEM.Subject = yoteiNAME & "の件" aITEM.Body = "予定の本文" & vbCrLf & "2行目" & vbCrLf & "xxxxx" aITEM.Start = Now() 'テストで現在の時刻をセット aITEM.End = DateAdd("h", 1, Now()) '1時間後を計算、終了にセット '動作 'aITEM.Save '.Saveで保存 .Close時に下記みたいに閉じると同時に保存も可能 'aITEM.Close 0 '保存して閉じる olSave=0 olDiscard=1 olPromptForSave=2 'AppointmentItem.Categories プロパティ (Outlook) 'https://msdn.microsoft.com/ja-jp/vba/outlook-vba/articles/appointmentitem-categories-property-outlook 'Display the Show Categories dialog box aITEM.ShowCategoriesDialog Debug.Print aITEM.Categories 'aITEM.Categories = "テスト赤,分類項目 黄" '文字列でセット可能です 'MsgBox aITEM.Categories Stop End Sub