スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Outlook 予定表登録マクロ

Outlookで予定表を登録するマクロを作ってみた。
ExcelやAccessでマクロを作ることはあっても、Outlookでマクロを組み込むのは初めてで、どんな用途があるのかわからなかったが、意外と簡単に組み込めた。とはいってもあまりヘルプも充実していないし、入門サイトもないので、手探りで予定表のオブジェクトがどれかを探した。
以下がそのマクロ、本来作る必要もないのだが、なぜか会議出席依頼が来たときに自動的に登録されず、しかたなくマクロを作った次第だ。ただ単にメール本文からWhenとWhereを読み込んで登録するだけ。定期的な予定にはまだ対応していない。


Sub CreateAppoint()
Dim myolapp As Outlook.Application
Dim myItem As AppointmentItem
Dim objMsg As MailItem

Dim idxWhen As Long
Dim idxDate As Long
Dim idxWhere As Long
Dim idxWhereEnd As Long
Dim idxHyphen As Long

Dim starttime As String
Dim endtime As String

'カレントメール
Set objMsg = ActiveInspector.CurrentItem

idxWhen = InStr(objMsg.Body, "When:")

If idxWhen = 0 Then
MsgBox "When:がないので登録しません"
End
End If

idxDate = InStr(objMsg.Body, "日")
idxWhere = InStr(objMsg.Body, "Where:")
idxWhereEnd = InStr(idxWhere, objMsg.Body, vbCrLf)

idxHyphen = InStr(objMsg.Body, "-")
starttime = Mid(objMsg.Body, idxHyphen - 5, 5)
endtime = Mid(objMsg.Body, idxHyphen + 1, 5)

'予定表にセットする
Set myolapp = CreateObject("Outlook.Application")
Set myItem = myolapp.CreateItem(olAppointmentItem)
myItem.Subject = objMsg.Subject
myItem.start = DateValue(Mid(objMsg.Body, idxWhen + 5, idxDate - idxWhen - 4)) + TimeValue(starttime)
myItem.Duration = DateDiff("n", TimeValue(starttime), TimeValue(endtime))
myItem. Location = Mid(objMsg.Body, idxWhere + 7, idxWhereEnd - idxWhere - 7)
myItem.Save

MsgBox "登録しました。"

End Sub


関連記事
スポンサーサイト

コメント

非公開コメント

プロフィール

dayan

Author:dayan
小職は、SE(システムエンジニア)を専門としておりますが、技術的な情報を中心に、それ以外に経済関連の日記、たわいもない日記も載せていきます。
[公式HPもよろしく!]

天気予報

-天気予報コム- -FC2-
リンク
ブロとも申請フォーム

この人とブロともになる

カテゴリー
最近の記事
ブログ内検索
最近のコメント
最近のトラックバック
RSSフィード
月別アーカイブ


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。