« RSSプラグイン for メーラーdeネットニュース 1.0.0.11公開 | Main | RSSプラグイン for メーラーdeネットニュース 1.0.0.12公開 »

2006.05.16

Notesの予定をOutlookへ

Notesの予定を携帯電話に移したくなったが、現行携帯に対応している製品が存在しないみたい。Outlook←→携帯はある(MySync Biz)ので、Notes→Outlookができれば可能となる。ということでNotes側で作成してみた。
まずNotesのメールデータベースにビューを作成する。
1文書が1行になる(繰り返しの予定も1行にする)ビューを作成し、選択条件を
----------------------------------------------------------------------------
Flg := 0;
@For(n := 1; n <= @Elements(CalendarDateTime); n := n + 1;
@If((CalendarDateTime[n]>=@Today) & (CalendarDateTime[n]<=@Adjust(@Today;0;1;1;0;0;0));
Flg := Flg+1;Flg));
SELECT @IsAvailable(CalendarDateTime) & (Flg>0)
----------------------------------------------------------------------------
とする(直近の1ヶ月分の予定)。
アクションを追加し、そのアクションのスクリプトを以下の通りにする。
----------------------------------------------------------------------------
Sub Click(Source As Button)
    Const  olFolderCalendar = &h00000009
    Const olAppointmentItem = 1
    Dim i As Integer
    Dim ABMin As Long
    Dim objOutlook
    Dim objAppointment
    Dim myNameSpace
    Dim myFolder
    Dim myItem
    Dim NextMonth As New NotesDateTime( "Today" )
    Call NextMonth.AdjustMonth( 1 )
    
    Set objOutlook =  CreateObject("Outlook.Application")
    Set myNameSpace = objOutlook.GetNameSpace("MAPI")
    Set myFolder = myNameSpace.GetDefaultFolder(olFolderCalendar)
    For i=myFolder.Items.Count To 1 Step -1
        Set myItem = myFolder.Items(i)
        If (myItem.Start>=DateAnd (myItem.Start<Int(NextMonth.LSLocalTime)+1Then
            myItem.Delete
        End If
    Next i
    
    Dim workspace As New NotesUIWorkspace
    Dim uiview As NotesUIView
    Set uiview = workspace.CurrentView
    Dim view As NotesView
    Set view = uiview.View
    Dim doc As NotesDocument
    
    Set doc = view.GetFirstDocument
    While Not(doc Is Nothing)
        If doc.HasItem("CalendarDateTime"Then
            i=0        
            Forall CDate In doc.GetItemValue("CalendarDateTime")
                i = i + 1
                If (CDate>=DateAnd (CDate<Int(NextMonth.LSLocalTime)+1Then
                    Set objAppointment = objOutlook.CreateItem(olAppointmentItem)
                    objAppointment.Start = CDate
                    objAppointment.Duration = (doc.EndDateTime(i-1)-CDate)*24*60
                    If doc.HasItem("Subject"Then
                        objAppointment.Subject = doc.GetItemValue("Subject")(0)
                    Else
                        objAppointment.Subject = ""
                    End If
                    If doc.HasItem("Body"Then
                        objAppointment.Body = doc.GetItemValue("Body")(0)
                    Else
                        objAppointment.Body = ""
                    End If
                    If doc.HasItem("Location"Then
                        objAppointment.Location = doc.GetItemValue("Location")(0)
                    Else
                        objAppointment.Location = ""
                    End If
                    If doc.HasItem("Alarms"And doc.HasItem("$AlarmOffset"Then
                        If (doc.GetItemValue("Alarms")(0)="1"Then
                            objAppointment.ReminderSet = True
                            ABMin = Clng(doc.GetItemValue("$AlarmOffset")(0))
                            objAppointment.ReminderMinutesBeforeStart = Abs(ABMin)
                        Else
                            objAppointment.ReminderSet = False
                        End If
                    Else
                        objAppointment.ReminderSet = False
                    End If
                    Call objAppointment.Save
                End If
            End Forall
            Set doc = view.GetNextDocument(doc)
        End If
    Wend
    Messagebox "Outlookへの出力を完了しました",64
End Sub
----------------------------------------------------------------------------
アルゴリズムは、まずOutlookの1ヶ月分の予定を削除し、ノーツの文書を元にOutlookの予定を作成するという安直なもの。(^_^;
対応しているのは開始・終了日時、タイトル、本文、場所、アラーム。ノーツの繰り返し文書はばらして作成する。

|

« RSSプラグイン for メーラーdeネットニュース 1.0.0.11公開 | Main | RSSプラグイン for メーラーdeネットニュース 1.0.0.12公開 »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/21611/10098578

Listed below are links to weblogs that reference Notesの予定をOutlookへ:

» サイボウズv3のスケジュールをOutlookにインポート [甘党のプログラマ]
今日から、お休みで、うれしいのです、、、。{/hakushu/} で、前々から作りたかったサイボウズv3のスケジュールをOutlookにインポートするOutlookのVBAのマクロを作っていました。 それにしても、OutlookのVBAのマクロは、情報が少ないですね。書籍も、和書は、ないようですし、操作のレコーディングができないので、作りづらいし、そもそも、VBA自体が見よう見真似なので、一行... [Read More]

Tracked on 2006.12.29 at 08:27 AM

« RSSプラグイン for メーラーdeネットニュース 1.0.0.11公開 | Main | RSSプラグイン for メーラーdeネットニュース 1.0.0.12公開 »