指定した日付の決まった時間で定型の会議出席依頼を作成するマクロ


コメントにて以下のご要望をいただきました。


失礼致します。
有休休暇の会議案内(日にち:任意、時間AM6:00~AM6:30、宛先メンバー:固定)
をVBAでやりたいのですがどのようなマクロになりますでしょうか。
ご教授お願い致します。


日にちが任意とのことなので、日付を指定するとその日の決まった時間で会議出席依頼を作成するというマクロを想定しました。
日付の指定方法としてはダイアログで入力するというものと、予定表で選択するものが考えられたので、両方を実装してみました。
ダイアログで入力するには InputBox 関数を使用します。
予定表で選択された日付を取得するには ActiveExplorer の CurrentView の SelectedStartTime を使用します。
作成した予定を確認してから送信できるように、最後は AppointmentItem オブジェクトの Display メソッドでアイテムの表示を行っていますが、確認せずにすぐに送信したいのであれば Display メソッドの代わりに Send メソッドで送信するよう変更が必要です。
マクロは以下のようになります。
ダイアログで日付を入力する場合は CreateFixedMeetingByInputBox を、予定表で選択した日付で作成する場合は CreateFixedMeetingBySelect を実行してください。

' ここをトリプルクリックでマクロ全体を選択できます。

' ダイアログから入力した日付に会議を作成するマクロ
Public Sub CreateFixedMeetingByInputBox()
     Dim strDate As String
     ' ダイアログで日付を取得
     strDate = InputBox("日付:")
     ' 取得した日付を指定して会議を作成
     CreateFixedMeeting strDate
End Sub
' 予定表で指定した日に会議を作成するマクロ
Public Sub CreateFixedMeetingBySelect()
     Dim calView As CalendarView
     Dim strDate As String
     ' 表示中のビューの種類が [日/週/月] の場合のみ実行
     If TypeName(ActiveExplorer.CurrentView) = "CalendarView" Then
         Set calView = ActiveExplorer.CurrentView
         ' ビューで選択している開始範囲の日付のみ取得
         strDate = FormatDateTime(calView.SelectedStartTime, vbShortDate)
         ' 取得した日付を指定して会議を作成
         CreateFixedMeeting strDate
     End If
End Sub
' パラメータで指定した日の特定の時間に会議を作成するサブ プロシージャ
Private Sub CreateFixedMeeting(strDate As String)
     ' 開始時刻を指定
     Const START_TIME = "6:00"
     ' 終了時刻を指定
     Const END_TIME = "6:30"
     ' 出席者を指定
     Const MEET_ATTENDEES = "user1@example.com;user2@example.com"
     ' 会議開催通知の件名を指定
     Const MEET_SUBJECT = "有給休暇"
     ' 会議開催通知の本文を指定
     Const MEET_BODY = "有給休暇の会議を行います"
     Dim apptMeet As AppointmentItem
     ' 新規予定を作成
     Set apptMeet = CreateItem(olAppointmentItem)
     With apptMeet
         ' 件名を設定
         .Subject = MEET_SUBJECT
         ' 本文を設定
         .Body = MEET_BODY
         ' 出席者を設定
         .RequiredAttendees = MEET_ATTENDEES
         ' 開始日時を設定
         .Start = strDate & " " & START_TIME
         ' 終了日時を設定
         .End = strDate & " " & END_TIME
         ' 予定を会議に変更
         .MeetingStatus = olMeeting
         ' 作成した会議を確認して送信したい場合は以下を使用
         .Display
         ' 作成した会議を直ちに送信する場合は以下を使用
         '.Send
     End With
End Sub

マクロの登録方法やメニューへの追加について

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中