質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

受付中

エクセルで複数人へのアウトルック予定表反映方法について

gdngnd
gdngnd

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

1回答

0評価

0クリップ

362閲覧

投稿2022/04/16 08:56

編集2022/04/21 15:52

エクセルでアウトルックの予定表へ反映させるために下記のVBAを実行しています。
その際、自分以外の他人のアウトルック予定表にも同じものを反映させるためにはどのような処理が必要でしょうか。

'Outlook用の定義 Dim olApp As Outlook.Application Dim olNamespace As Outlook.Namespace Dim olFolder As Folder Dim olConItems As Outlook.Items Dim olItem As AppointmentItem Dim checkFlg As Long '重複チェックフラグ初期値設定 checkFlg = 0 'Excel用の定義 Dim wbBook As Workbook Dim wsSheet As Worksheet Dim lnContactCount As Long 'スクリーンの更新は行われません。 Application.ScreenUpdating = False 'Excelのブックとワークシートのオブジェクトを設定します。 Set wbBook = ThisWorkbook Set wsSheet = wbBook.Worksheets(1) wsSheet.Activate 'Outlookオブジェクトを設定し、MAPI名前空間を介してOutlookの予定表を取得します。 Set olApp = New Outlook.Application Set olNamespace = olApp.GetNamespace("MAPI") Set olFolder = olNamespace.GetDefaultFolder(olFolderCalendar) Set olConItems = olFolder.Items '取得結果を記述する行番号を指定します。2行目のセルから開始されることになります。 lnContactCount = 2 Dim rc As Integer rc = MsgBox("予定表へ登録しますか?", vbYesNo + vbQuestion, "確認") If rc = vbYes Then '予定表一覧の件数分繰り返す。 For i = lnContactCount To Cells(1, 1).End(xlDown).Row Set olItem = olApp.CreateItem(olAppointmentItem) With olItem .RequiredAttendees = Cells(i, 1) .OptionalAttendees = Cells(i, 2) .Subject = Cells(i, 3) .Body = Cells(i, 4) .Start = Cells(i, 5) .End = Format(Cells(i, 6), "yyyy/mm/dd hh:mm:ss") .Body = Format(Cells(i, 7), "yyyy/mm/dd hh:mm:ss") .Body = Cells(i, 8) '重複チェック For Each olItemBefor In olConItems If TypeName(olItemBefor) = "AppointmentItem" Then '登録されている予定表の件名と開始日時が一致していたらフラグを1にする If olItemBefor.Subject = .Subject And olItemBefor.Start = .Start Then checkFlg = 1 End If End If Next If checkFlg <> 1 Then 'ここで保存 olItem.Save End If End With '重複フラグリセット checkFlg = 0 Next Else MsgBox "処理を中断します" End If 'Null out the variables. Set olItem = Nothing Set olApp = Nothing 'Turn screen updating back on. Application.ScreenUpdating = True MsgBox "Outlook予定表の登録が完了しました!", vbInformation

End Sub

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

m.ts10806

2022/04/16 09:11

VBA OUTLOOK スケジュール登録 で調べたら「他人のOutLook予定表を」 というのが出てきますが、そのように調べたり試したりされましたか? (古い情報で適用できなかったというのでしたらその旨も記載してほしい)
gdngnd

2022/04/16 09:14

試しましたが、「 Set olFolder = olNamespace.GetSharedDefaultFolder(recOther, olFolderCalendar)」でエラーが出たため、できませんでした。
m.ts10806

2022/04/16 10:00

どう書いてどういうエラーが出たかによると思います。 コピペだけでは動かないでしょうし、Officeのバージョンとどのエディションかによると思います

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。