エクセル2007 VBAでアウトルック2007の予定表を作成できない?

このQ&Aのポイント
  • エクセル2007で作成したファイルを添付したアウトルック予定表を作成する際、予定日は3ヶ月後に設定したいが、開始時刻の指定がうまくできない。
  • 下記のリンクを参考にコードを記述しているが、開始時刻を8時30分に指定する方法がわからない。
  • 開始時刻以外はすべてうまく処理できているため、開始時刻の指定方法について教えて欲しい。
回答を見る
  • ベストアンサー

エクセル2007 VBAでアウトルック2007の予定表を作るんですが、

エクセル2007 VBAでアウトルック2007の予定表を作るんですが、 日付まではうまくいったのに開始時刻が指定できません。 エクセルでのファイルを保存した後にそのファイルを添付したアウトルック予定表を作成します。 予定日は3ヶ月後、開始時刻は8:30amにしたいのですが、どうにも開始時刻だけが指定できません。 なにかいい方法があるでしょうか? こちらを参考に途中までは出来ています。 http://www.ken3.org/cgi-bin/group/vba_outlook.asp ただし、予定表の開始時刻が0:00となっているので、ここを8時30分にしたいのです。 (終了時間はあまり気にしません) そもそも出来ないのかな? コードは下記です。 Sub 保存() '保存コード省略 Flnm=フォルダとファイル名 'ここからアウトルックの操作 Dim oApp As Object Dim myNameSpace As Object Dim myFolder As Object Dim strMOJI As String Dim objITEM As Object 'outlook 起動 Set oApp = CreateObject("Outlook.Application") Set myNameSpace = oApp.GetNamespace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(9) '起動時フォルダーを指定 myFolder.Display 'アイテムの作成 Set objITEM = oApp.CreateItem(1) '予定表作成画面を指定 objITEM.Display '編集画面を表示 '予定表内容 objITEM.Subject = "見積り発行後のフォロー" '件名 objITEM.body = "見積り発行から3ヶ月経ちました" '本文 objITEM.Attachments.Add Flnm 'ファイルの添付 objITEM.Start = DateAdd("m", 3, Date) '予定日 'ここらへんがわからない        '開始時間も入れたい 'objITEM.Save                 '保存 'objITEM.Close 2                  '閉じる End Sub 開始時刻以外はすべてうまく処理出来ています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Start は開始日時を設定するプロパティです。 もし、開始時刻を 8:30 にしたいなら、Start の設定を以下のようにします。 objITEM.Start = DateAdd("m", 3, Date) & " 8:30" '予定日時 ついでに終了時刻を 9:30 にするなら、以下の記述を追加します。 objITEM.End = DateAdd("m", 3, Date) & " 9:30" '予定日時

karacom
質問者

お礼

早速のご回答ありがとうございました。 あんなに悩んだのにあっという間に解決です! ありがとうございました。

関連するQ&A

  • VBAで二重起動を防止したいのですが、

    VBAで二重起動を防止したいのですが、 いろいろ調べましたが、わかりませんでした。 なにかいい方法はないでしょうか? EXCELで見積書を作成して、そのファイルをVBAで保存するとき、ついでに、Outlook予定表に見積り期限日予定を入れるものです。 ファイル保存コード省略 Flnm=パス 'ここからアウトルック操作 Dim oApp As Object Dim myNameSpace As Object Dim myFolder As Object Dim objITEM As Object 'outlook 起動 Set oApp = CreateObject("Outlook.Application") '既に起動してても新規起動 Set myNameSpace = oApp.GetNamespace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(9) '起動時フォルダーを指定 myFolder.Display 'アイテムの作成 Set objITEM = oApp.CreateItem(1) '予定表作成画面を指定 objITEM.Display '編集画面を表示 '予定表内容 objITEM.Subject = "見積り発行後のフォロー" '件名 objITEM.body = "見積り発行から3ヶ月経ちました" '本文 objITEM.Attachments.Add Flnm 'ファイルの添付 objITEM.Start = DateAdd("m", 3, Date) & " 8:30" '予定日と開始時間 objITEM.Save '保存 objITEM.Close 2 '閉じる EXCEL2007とOutlook2007を使用しています。 1.多重起動しないことと 2.起動中で最小化されたOutlookがあるならアクティブ化して予定を入れる、または 3.起動していなかったら起動させて、予定を入れる と云うことがやりたいのですが・・・

  • outlookの予定をexcelから読む

    Office2007を使っています。 予定作成のフロントエンドとしてoutlook、 全体の予定表の作表、印刷エンジンとしてexcel、という使い方をしたいです Dim oApp 'As Outlook.Application OutlookのApplication オブジェクトを入れる Dim myNameSpace 'As Outlook.NameSpace 名前のスペースと言われても、、 Dim myFolder 'As Outlook.Folder フォルダー指定 Dim shigoto Dim aITEM 'As Outlook.AppointmentItem '予定、アポ Set oApp = CreateObject("Outlook.Application") Set myNameSpace = oApp.GetNamespace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダー olFolderInbox=6 指定 Set shigoto = myFolder.Folders("予定表(仕事)") shigoto.display oApp.ActiveWindow.WindowState = 2 'olNormalWindow=2 を セット For Each aITEM In shigoto.Items 'aITEMに入っている個々の予定に対する処理 Next http://www.ken3.org/cgi-bin/group/vba_outlook.asp 上記サイトのコードで、規定の予定表にある予定オブジェクトにアクセスすることはできました これを、iCloud内の予定表に対して同じことをやりたいのですが、うまくいきません。 Set shigoto = myFolder.Folders("iCloud内の予定表(仕事)") Set shigoto = myFolder.Folders("iCloud").Folders("予定表(仕事)") などとやってみたのですが、 実行時エラー'-2147221283(8004010f)": 操作は失敗しました。オブジェクトが見つかりませんでした。 というエラーで終了です。 うまくいく方法はないでしょうか? よろしくお願いします。

  • <EXCEL/VBA> OUTLOOKのウインドを閉じる方法

    EXCEL/VBAで、OUTLOOKのウインドを閉じる方法を教えて下さい。 OUTLOOKを立ち上げた状態で、EXCEL/VBAで下記のようにOUTLOOKのフォルダーを指定してウインドを表示していますが、 VBAで開いたウインドのみ閉じたいのですが、うまく行きません。 oApp.Quitだと元々立ち上げていたoutlookも含めて終了してしまいます。宜しく、お願いします。 Sub OL_TEST() Dim oApp As Object 'OutlookのApplication オブジェクト Dim myNameSpace As Object '名前スペース Dim myFolder As Object 'フォルダー指定 Set oApp = CreateObject("Outlook.Application") Set myNameSpace = oApp.GetNamespace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダー olFolderInbox=6 指定 myFolder.Display '表示

  • outlookが起動してるかどうかを取得したい

    Sub Outlookが起動してないなら起動する() Dim oApp 'As Outlook.Application OutlookのApplication オブジェクトを入れる Dim myNameSpace 'As Outlook.NameSpac Dim myFolder 'As Outlook.Folder If Outlookが起動してるなら Then Exit Sub 'outlook 起動をCreateObjectで ※これだと複数起動してしまうがご勘弁を Set oApp = CreateObject("Outlook.Application") Set myNameSpace = oApp.GetNamespace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダー myFolder.Display '(通常サイズ olNormalWindow=2 , olMaximized=0,olMinimized=1) oApp.ActiveWindow.WindowState = 0 End Sub ///////////////////////////////////////////////////////////////// のような事がしたいのですが、 If Outlookが起動してるなら Then Exit Sub をどうすればいいのか教えていただけませんか? 当方OFFICE2007を使用しています。

  • アウトルックが起動しているかどうかを取得するには?

    http://www.ken3.org/cgi-bin/group/vba_outlook.asp を参考に Sub Sample() Dim oApp As Outlook.Application Dim myNameSpace As Outlook.Namespace Dim myFolder As Outlook.Folder 'outlook 起動をCreateObjectで ※これだと複数起動してしまうがご勘弁を Set oApp = CreateObject("Outlook.Application") Set myNameSpace = oApp.GetNamespace("MAPI") '作業フォルダーの指定(.GetDefaultFolder) と 表示(.Display) Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダー olFolderInbox=6 指定 myFolder.display End Sub でエクセルからアウトルックを起動しているのですが 既に起動していると2個起動してしまいます。 「既に起動しているのなら起動しない」という事はできますか? 参考URLに 起動をCreateObjectで ※これだと複数起動してしまうがご勘弁を と書いてありますが、ちょっと勘弁できませんでした笑

  • エクセルVBAでOutlookメールの書式を変える

    エクセル2010です。 下記のようなコードでOutlookメールを作成したとき、たとえば  "ABC株式会社" だけを赤字で太文字にするにはどう書けばよいのでしょうか? Sub TEST001()   Dim oApp As Object   Dim objMAIL As Object   Dim strMOJI(1) As String   On Error Resume Next   Set oApp = GetObject(, "Outlook.Application")   On Error GoTo 0   If oApp Is Nothing Then     Set oApp = CreateObject("Outlook.Application")   End If   Set objMAIL = oApp.CreateItem(0)   strMOJI(0) = "こんにちは!" & vbCrLf & _   "色付けテストです。" & vbCrLf & _   "よろしくおねがいします。" & vbCrLf   strMOJI(1) = vbCrLf & _   "以上です。" & vbCrLf & _   "ABC株式会社" & vbCrLf & _   "emaxemax"   objMAIL.To = "xxxx@xxx.co.jp"   objMAIL.CC = "yyyy@xxx.co.jp"   objMAIL.Subject = "テスト"   objMAIL.Body = strMOJI(0) & strMOJI(1)   objMAIL.Display End Sub

  • ACCESS2013のVBAで、EXCELを操作

    ご質問させて頂きます。 ACCESS2013のVBAで、EXCELを操作するために 下記のようにしています。 ------- Dim oApp As Object Dim oWkb As Object Dim oWks As Object Dim Rw As Integer Dim SQL As String Set oApp = CreateObject("Excel.Application") oApp.Visible = True oApp.DisplayAlerts = Flase '確認メッセージの非表示 ↓↓↓オートメーションエラー Set oWkb = oApp.Workbooks.Open(CurrentProject.Path & "\ひながた.xls") ------- 上記のところでオートメーションエラーになってしまいます。 しかし私の端末ではエラーは出ません。 問題と思われるのは エラーが出る人の端末は、 EXCELが2010と2013と 2つのバージョンがインストールされていることです。 このようなことでエラーが出てしまうことはあるのでしょうか?

  • 【outlook】1か月分の予定表を書き出すVBA

    こんにちは。 Outlook2010で1か月分の予定をエクセルに書き出したいと考えています。 以下のVBAを見つけることはできましたが、1か月分の予定を書き出すVBAに書き換えができませんでした。 どのように修正すべきかご教示いただければと存じます。 よろしくお願いします。 ---------------------------------------------- Sub Excel週間予定() '期間指定 Dim dateFrom As Date Dim dateTo As Date '初期値 dateFrom = Date '入力ダイアログを表示 dateFrom = InputBox("開始日を入力してください。", "週間予定", dateFrom) '7日間 dateTo = DateAdd("d", 7, dateFrom) 'MsgBox dateFrom 'MsgBox dateTo '予定表モジュールを取得 Dim calmod As CalendarModule Set calmod = Application.ActiveExplorer.NavigationPane.Modules.GetNavigationModule(olModuleCalendar) 'MsgBox calmod 'Excelを取得 Dim Excelapp As Object Set Excelapp = CreateObject("Excel.Application") '表示 Excelapp.Visible = True 'ブックを作成 Excelapp.Workbooks.Add 'ヘッダを準備 Excelapp.Range("A1:G1") = Array("予定表", "件名", "場所", "開始時刻", "終了時刻", "終日イベント") '2行目から Dim row As Integer row = 2 'すべての予定表グループに対して Dim grp As NavigationGroup For Each grp In calmod.NavigationGroups 'MsgBox grp 'すべての予定表に対して Dim fol As NavigationFolder For Each fol In grp.NavigationFolders 'MsgBox fol 'チェックされている予定表のみ If fol.IsSelected Then 'MsgBox fol '予定の絞り込み Dim col As Items Set col = fol.Folder.Items col.Sort "[Start]" col.IncludeRecurrences = True Dim appointment Set appointment = col.Find("[Start] < """ & Format(dateTo, "yyyy/mm/dd") & """ AND [End] >= """ & Format(dateFrom, "yyyy/mm/dd") & """") '見つかった予定に対して While Not appointment Is Nothing Excelapp.Cells(row, 1).Value = fol.DisplayName Excelapp.Cells(row, 2).Value = appointment.Subject Excelapp.Cells(row, 3).Value = appointment.Location Excelapp.Cells(row, 4).Value = appointment.Start Excelapp.Cells(row, 5).Value = appointment.End Excelapp.Cells(row, 6).Value = appointment.AllDayEvent row = row + 1 Set appointment = col.FindNext Wend End If Next Next 'MsgBox "end" End Sub

  • エクセルVBAでアウトルックメールの差出人変更

    エクセル2010です。 エクセルからVBAでアウトルックメールを作成するのですが、差出人を自分ではなく部門名のアドレスにしたいのです。 手動ではなんなく差出人を変更できるのですが、VBAでの方法がわかりません。 ネット検索してみると、 SendUsingAccount = Session.Accounts("アカウント名") でできるようなのですが、アカウント名がよくわかりません。 アカウント名に、手動で差出人を変更する際に「名前の選択」で指定する部門の名前や部門のアドレスなどを入れてみましたがオブジェクトが必要とのエラーになってしまいます。 どうすればよいのでしょうか? Sub TEST001() Dim oApp As Object Dim objMAIL As Object Dim strMOJI(1) As String On Error Resume Next Set oApp = GetObject(, "Outlook.Application") On Error GoTo 0 If oApp Is Nothing Then Set oApp = CreateObject("Outlook.Application") End If Set objMAIL = oApp.CreateItem(0) strMOJI(0) = "こんにちは!" & vbCrLf & _ "差出人変更のテストです。。" & vbCrLf & _ "よろしくおねがいします。" & vbCrLf strMOJI(1) = vbCrLf & _ "以上です。" & vbCrLf & _ "ABC株式会社" & vbCrLf & _ "emaxemax" objMAIL.To = "" objMAIL.CC = "xxxx@xxx.co.jp" objMAIL.Subject = "テスト" objMAIL.Body = strMOJI(0) & strMOJI(1) ' objMAIL.SendUsingAccount = Session.Accounts("ABC Gyomubu")'ここでエラー objMAIL.Display End Sub

  • VBAで作成するメール(開封確認の要求設定)

     エクセルにて、毎日送信する定型メールを作成するマクロを作成しましたが、作成したメールに開封確認の要求を追加する設定がわかりません。エクセルのシートから要求の有無を指定させたいと考えています。もし、ご存じの方がいましたら、お知恵を拝借いただきたいです。  なお、エクセルでマクロを起動し、Outlook.Applicationのオブジェクトでメールを作成して、シートの内容を各設定に組み込むという形をとっています。OSはWindowsXP、Office2007のOutlookでメールを作成しています。  投稿は今回が初めてで不慣れな点がありますが、不備等をご指摘いただければ幸いです。宜しくお願い致します。 -----------------------以下マクロの内容------------------------ Option Explicit Sub MAKE_MAIL_ITEM() Dim Tool As Workbook Dim Sheet As Worksheet Dim myoApp As Object Dim myoExp As Object Dim myNameSpace As Object Dim myFolder As Object Dim objMAIL As Object Dim SendDay As String Set Tool = ThisWorkbook Set Sheet = Tool.ActiveSheet ' Outlookアプリのオブジェクト設定 Set myoApp = CreateObject("Outlook.Application") ' Outlookの規定フォルダをオブジェクト設定 Set myNameSpace = myoApp.GetNamespace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(6) ' Outlookで表示されているフォルダのアクティブ設定 Set myoExp = myoApp.ActiveExplorer ' アクティブフォルダがなければOutlook起動(表示) If myoExp Is Nothing Then myFolder.display End If ' メールアイテムの作成 Set objMAIL = myoApp.CreateItem(0) ' 日付の取り込み SendDay = Year(Date) & "年" & Month(Date) & "月" & Day(Date) & "日" ' メールの表示 objMAIL.display ' 宛先設定 objMAIL.To = Sheet.Cells(2, 2) ' CC設定 objMAIL.CC = Sheet.Cells(3, 2) ' Subjectを設定([$#Today#$]があれば日付に変換) objMAIL.Subject = Replace(Sheet.Cells(4, 2), "[$#Today#$]", SendDay) ' 本文の代入([$#Today#$]があれば日付に変換) objMAIL.Body = Replace(Sheet.Cells(5, 2), "[$#Today#$]", SendDay) End Sub

専門家に質問してみよう