「朝9時に設定した会議が、相手のカレンダーでは10時に表示されていた」「海外の同僚から”その時間じゃないよ”と言われて冷や汗をかいた」――こんな経験、ありませんか? Outlookのカレンダーで時間帯がズレる現象は、実はかなり多くのビジネスパーソンが日常的に遭遇しているトラブルです。しかも厄介なのは、自分では正しく設定したつもりなのに、いつの間にかズレが発生している点。原因はひとつではなく、Windows・Outlookアプリ・Web版・スマートフォンという4つの設定レイヤーがそれぞれ独立してタイムゾーンを保持しているために起きるのです。
この記事では、Outlookの時間帯がズレる原因をひとつずつ丁寧に解き明かしながら、クラシック版・新しいOutlook・Web版・モバイル版それぞれの具体的な修正手順をお伝えします。さらに、2026年3月8日に迫るアメリカのサマータイム(夏時間)切り替えでありがちなトラブルや、Microsoftが2025年10月にリリースした新しいDST表示機能についても取り上げます。読み終えるころには、どんな環境でも予定の時刻がピタッと合う状態をつくれるはずです。
- Outlookで時間帯がズレる5大原因と、それぞれに対応した具体的な修正手順の解説
- クラシック版・新しいOutlook・Web版・スマホ版すべてのタイムゾーン設定を統一する方法
- 2026年サマータイム切り替え時のカレンダー表示バグ対策と最新アップデート情報
- そもそもOutlookの時間帯がズレる仕組みとは?
- Outlookで時間帯がズレる5つの原因を徹底解説
- 今すぐ直せる!環境別タイムゾーン修正手順
- 2026年サマータイム切り替え時の注意点と最新対策
- タイムゾーン設定を統一するための最終チェックリスト
- 上級者向け管理者やエンジニアが知っておくべきポイント
- 情シス歴10年超の現場から教える「本当に効く」タイムゾーントラブル対処術
- VBAマクロでタイムゾーン問題を自動化する実践コード集
- 新しいOutlookへの移行でVBAが使えなくなる問題と代替策
- 現場で頻発する「タイムゾーン以外のそっくりさん」トラブルと見分け方
- 知っておくと助かるOutlookのタイムゾーン便利機能
- Windowsのレジストリとグループポリシーでタイムゾーンを組織全体で強制する方法
- Outlookで時間帯がズレることに関する追加の疑問解決
- ぶっちゃけこうした方がいい!
- Outlookで時間帯がズレることに関する疑問解決
- 今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
- まとめ
そもそもOutlookの時間帯がズレる仕組みとは?
まず知っておきたいのは、Outlookがカレンダーの予定をどうやって保存しているかという基本的な仕組みです。Outlookは、すべての予定を協定世界時(UTC)という国際標準の時刻形式で保存しています。あなたが「午前9時」と入力して保存した会議は、内部的にはUTCの時刻に変換されて記録されるわけです。そしてカレンダーに表示するときに、あなたが設定しているタイムゾーンに合わせて「午前9時」と逆変換して見せてくれます。
つまり、会議の開催者が太平洋標準時で「午後2時」に設定した会議を、マウンテンタイムの参加者が見ると「午後3時」と正しく表示される。これが正常な動作です。ところが、ここで「あなたのOutlookが認識しているタイムゾーン」と「あなたが実際にいる場所のタイムゾーン」にズレがあると、表示される時刻がおかしくなります。たとえば日本にいるのにOutlookが東部標準時のまま動いていたら、すべての予定が14時間もズレて表示されてしまうのです。
さらに複雑なのが、Outlookにはタイムゾーン設定が1か所ではなく複数存在するという点です。Windowsのシステム設定、Outlookアプリのカレンダー設定、Outlook Web版の言語とタイムゾーン設定、そしてExchange Onlineのメールボックス設定――これらがすべて独立して動いており、しかも自動で同期されない場合があります。この「見えない設定の不一致」こそが、Outlookで時間帯がズレる最大の原因なのです。
Outlookで時間帯がズレる5つの原因を徹底解説
原因1WindowsのタイムゾーンとOutlookの設定が一致していない
もっとも多い原因がこれです。OutlookはOSのタイムゾーンを参照して動作しますが、Outlookアプリ内にも独自のタイムゾーン設定があります。たとえば出張先でWindowsのタイムゾーンを現地に変更したのに、Outlookのカレンダー設定は日本のままだった、という状況では確実にズレが発生します。逆もまた然りで、Windowsの設定は正しいのにOutlookだけが違うタイムゾーンを指している場合もあります。
特に2025年から2026年にかけて多く報告されているのが、新しいOutlook for Windowsでタイムゾーンの設定が保存されないという問題です。Microsoft Q&Aフォーラムでは「設定を変更してもOutlookを再起動するとUTCに戻ってしまう」という報告が相次いでおり、クラシック版では問題なく動作するケースが多いことから、新しいOutlook特有のバグだと考えられています。
原因2Outlook Web版(OWA)の設定がデスクトップ版と異なっている
Outlook on the Web(OWA)には、デスクトップアプリとは別の独立したタイムゾーン設定があります。しかもその設定箇所が2か所に分かれています。ひとつは「設定」→「全般」→「言語とタイムゾーン」、もうひとつは「設定」→「カレンダー」→「表示」のタイムゾーン欄です。前者はプロフィール全体のタイムゾーン、後者はカレンダー表示のタイムゾーンで、この2つが異なっているとWeb版で予定の時刻がズレます。
さらに厄介なのが、勤務時間のタイムゾーンという3つめの設定です。Microsoft Q&Aで2026年1月に報告されたケースでは、「全般」も「カレンダー表示」もUTC+0で正しいのに、勤務時間だけがUTC-8のまま変更できないという問題が発生していました。この不整合が原因で、他の人があなたの空き時間を確認するときに時刻がズレて表示されることがあります。
原因3サマータイム(夏時間)の切り替えによる一時的な表示バグ
これは毎年3月と11月に発生する「季節もの」のトラブルです。Microsoftの公式ドキュメントでも認められている既知のバグで、複数のタイムゾーンをカレンダーに表示している場合に、サマータイムの切り替え日を含む週の表示がズレるという現象です。
具体的には、プライマリとセカンダリのタイムゾーンでサマータイムの開始日が異なる場合(たとえばアメリカは3月8日、ヨーロッパは3月29日)、その2~3週間のあいだタイムバーの時差表示が1時間ズレて見えます。予定を開くと正しい時刻が表示されるのですが、カレンダーのグリッド上では間違った位置に配置されるため、パッと見で勘違いしやすいのです。2026年はアメリカのサマータイム開始が暦上もっとも早い3月8日(日曜日)のため、翌週のカレンダー表示でこの問題に直面する方が増えると予想されます。
原因4スマートフォンのOutlookアプリとPC側のタイムゾーンが異なる
iPhoneやAndroidのOutlookアプリは、基本的に端末のOSが持つタイムゾーン情報を参照します。しかし、海外旅行後に端末のタイムゾーンが現地のまま戻っていなかったり、「タイムゾーンを自動設定」がオフになっていたりすると、PC版とモバイル版で表示される時刻が食い違います。
Apple CommunityやMicrosoft Q&Aでは、iPhoneのカレンダーアプリからOutlookカレンダーに予定を作成すると、なぜかレイキャビク(アイスランド)のタイムゾーンで登録されるという不具合が数多く報告されています。オーストラリアやイスラエルなど、さまざまな国のユーザーが同じ現象に遭遇しており、2024年以降も根本的な修正はされていない状況です。Outlookアプリから直接予定を作成すれば正しいタイムゾーンが適用されるため、iPhoneの標準カレンダーアプリ経由での登録は避けたほうが安全です。
原因5Exchange Onlineのメールボックス設定が破損している
上記のすべてを確認しても直らない場合、Exchange Online側のカレンダー設定が破損している可能性があります。これはMicrosoftの公式トラブルシューティングでも言及されているケースで、勤務時間のタイムゾーン情報が正しくない状態でサーバーに保存されてしまっている状態です。
この場合、管理者がPowerShellで
Get-MailboxCalendarConfiguration -Identity ユーザー名 | FL WorkingHoursTimeZone
を実行して現在の設定を確認し、
Set-MailboxCalendarConfiguration -Identity ユーザー名 -WorkingHoursTimeZone "Tokyo Standard Time"
のように正しいタイムゾーンを再設定する必要があります。個人で対処が難しい場合は、IT部門やMicrosoft 365の管理者に依頼しましょう。
今すぐ直せる!環境別タイムゾーン修正手順
Windowsのタイムゾーンを確認・修正する手順
すべての修正の出発点はここです。Outlookはシステムの時刻を参照するため、まずWindowsの設定を正しくしておかないと、どれだけOutlook側を調整しても意味がありません。
- キーボードの
Windowsキー + Iを同時に押して「設定」を開きます。
- 左メニューから「時刻と言語」を選び、「日付と時刻」をクリックします。
- 「タイムゾーン」のドロップダウンが自分のいる地域と合っているか確認してください。日本在住なら「(UTC+09:00) 大阪、札幌、東京」が正解です。
- 「時刻を自動的に設定する」と「タイムゾーンを自動的に設定する」の両方をオンにしておくと、出張時にも自動で切り替わります。
- 設定を変更した場合は、パソコンを一度再起動してから次のステップに進んでください。
クラシックOutlook(デスクトップ版)の修正手順
クラシック版のOutlookは「ファイル」メニューからタイムゾーンを変更できます。Microsoft 365の最新バージョンでは最大3つ、Outlook 2016や2019では最大2つのタイムゾーンを並行表示できます。
- Outlookを起動し、左上の「ファイル」タブをクリックします。
- 「オプション」を選択し、左メニューから「予定表(カレンダー)」をクリックします。
- 画面を下にスクロールして「タイムゾーン」セクションを見つけます。
- 「タイムゾーン」のドロップダウンで「(UTC+09:00) 大阪、札幌、東京」が選ばれているか確認します。違っていれば正しいものに変更してください。
- 必要であれば「ラベル」欄に「東京」など分かりやすい名前を入力します。
- 「OK」をクリックして保存したあと、Outlookをいったん完全に終了し、再起動します。
海外のメンバーとよく会議をする方は、「2番目のタイムゾーンを表示する」にチェックを入れて相手の都市を追加しておくと、カレンダーの左側に2つの時間軸が並んで表示されるようになります。時差の計算ミスがなくなるので非常に便利です。
新しいOutlook for Windowsの修正手順
新しいOutlookはクラシック版とメニュー構成が異なります。タイムゾーンの設定場所を知らないと迷いやすいので、順を追って説明します。
- 画面右上の歯車アイコン(設定)をクリックします。
- 「予定表(カレンダー)」→「表示」の順に進みます。
- 「タイムゾーン」のドロップダウンから正しい地域を選択します。
- 「保存」をクリックします。
- さらに「設定」→「全般」→「言語とタイムゾーン」も確認し、同じタイムゾーンになっているか照合してください。ここが違っていると勤務時間の表示がズレる原因になります。
もし設定を保存してもOutlookを再起動するとUTCに戻ってしまう場合は、いったん意図的に別のタイムゾーン(たとえばロンドン)に変更して保存し、そのあと改めて正しいタイムゾーンに戻すという手順を試してください。Microsoft Q&Aで複数のユーザーがこの方法で解決したと報告しています。それでもダメな場合は、すべてのアカウントを一度削除してから再度追加すると、カレンダーのタイムゾーン設定がリセットされることがあります。
Outlook Web版(OWA)の修正手順
ブラウザでOutlookを使っている場合は、設定箇所が2か所あることを意識してください。両方を揃えないと片方だけ直しても意味がありません。
- ブラウザでoutlook.office.comにアクセスしてサインインします。
- 画面右上の歯車アイコンをクリックし、パネル最下部の「Outlookのすべての設定を表示」を選びます。
- 「全般」→「言語とタイムゾーン」で正しいタイムゾーンを選択して保存します。
- 次に「カレンダー」→「表示」に移動し、「タイムゾーン」のドロップダウンも同じ地域に合わせて保存します。
スマートフォン(iPhone・Android)の修正手順
モバイル端末はOSのタイムゾーン設定が最優先されます。iPhoneの場合は「設定」→「一般」→「日付と時刻」で「自動設定」をオンにしてください。Androidの場合は「設定」→「システム」→「日付と時刻」で「タイムゾーンを自動設定」を有効にします。その上で、Outlookモバイルアプリを一度強制終了してから再起動すれば、最新のタイムゾーン情報が反映されます。
前述のとおり、iPhoneの標準カレンダーアプリからOutlookカレンダーに予定を作成するとタイムゾーンがレイキャビクに設定されるバグが報告されています。重要な会議はOutlookアプリから直接作成することを強くおすすめします。
2026年サマータイム切り替え時の注意点と最新対策
2026年のサマータイムは、アメリカでは3月8日(日曜日)に時計を1時間進め、ヨーロッパでは3月29日(日曜日)に切り替わります。この約3週間のあいだ、アメリカとヨーロッパを結ぶ複数タイムゾーン表示ではカレンダーの時差表示がズレることが確認されています。日本はサマータイムを採用していないため、日本と海外を結ぶ場合にもこの影響を受けます。
Microsoftが2025年10月にリリースした新しいOutlook for Windowsのアップデートでは、サマータイム切り替え日のカレンダー表示が改善されました。切り替え当日は、タイムバーが「重複する1時間」または「消える1時間」を視覚的に表現し、情報通知バナーで変化を知らせてくれるようになっています。ただし、この新機能は段階的に展開中であり、すべての組織に行き渡っていない可能性もあります。
サマータイム期間中に予定がズレるのを防ぐもっとも確実な方法は、「稼働日」ビュー(Work Weekビュー)を使うことです。サマータイムの切り替えは日曜日に行われるため、月曜から金曜だけを表示する稼働日ビューにしておけば、切り替え日がビューに含まれず、すべてのタイムゾーンが正しい時差で表示されます。これはMicrosoftの公式ドキュメントで推奨されている回避策です。
なお、アメリカでは2026年2月に「Daylight Act of 2026」という法案が提出され、時計を30分だけ進めた状態で恒久的に固定する案が議論されています。この法案が成立すればサマータイムの切り替え自体がなくなりますが、現時点ではまだ法案の段階であり、2026年3月のサマータイムは予定どおり実施されます。
タイムゾーン設定を統一するための最終チェックリスト
ここまでの内容をまとめると、Outlookで時間帯がズレるトラブルを根本的に解消するには、4つの設定レイヤーすべてを同じタイムゾーンに揃えることが不可欠です。以下の表を使って、自分の環境をひとつずつ確認してみてください。
| 確認箇所 | 確認方法 | 設定パス |
|---|---|---|
| Windowsシステム | タスクバーの時計を右クリック→「日付と時刻の調整」 | 設定 → 時刻と言語 → 日付と時刻 → タイムゾーン |
| クラシックOutlook | カレンダーの時間軸に表示されるタイムゾーンラベル | ファイル → オプション → 予定表 → タイムゾーン |
| 新しいOutlook | カレンダー表示と全般の2か所を確認 | 設定 → カレンダー → 表示/設定 → 全般 → 言語とタイムゾーン |
| Outlook Web版 | 歯車アイコンからすべての設定を開く | 全般 → 言語とタイムゾーン/カレンダー → 表示 |
| スマートフォン | OS設定でタイムゾーン自動設定がオンか確認 | iPhone: 設定 → 一般 → 日付と時刻 / Android: 設定 → システム → 日付と時刻 |
| Exchange Online(管理者向け) | PowerShellでメールボックスのタイムゾーンを確認 |
Get-MailboxCalendarConfiguration
コマンド |
すべての設定が一致していることを確認したら、Outlookを完全に終了してから再起動してください。タスクマネージャーで
Outlook.exe
のプロセスが残っていないかも確認すると確実です。再起動後にカレンダーを開いて、予定の時刻が正しく表示されていれば修正完了です。
上級者向け管理者やエンジニアが知っておくべきポイント
Exchange OnlineのPowerShellでタイムゾーンを一括管理する方法
企業で多数のユーザーのタイムゾーンを管理する場合、ひとりずつGUIで設定するのは現実的ではありません。Exchange Online PowerShellを使えば、
Set-MailboxCalendarConfiguration
コマンドでメールボックスの勤務時間タイムゾーンを一括変更できます。たとえば
Set-MailboxCalendarConfiguration -Identity user@contoso.com -WorkingHoursTimeZone "Tokyo Standard Time"
のように指定します。
また、共有メールボックスやリソースメールボックス(会議室など)もタイムゾーン設定を持っているため、これらが正しく設定されていないと会議の予約時に時刻がズレて見えることがあります。
Get-Mailbox -RecipientTypeDetails RoomMailbox | ForEach-Object { Get-MailboxCalendarConfiguration -Identity $_.Identity | Select Identity, WorkingHoursTimeZone }
で全会議室の設定を一覧表示できるので、定期的にチェックするとよいでしょう。
MFCMAPIツールで破損したカレンダー設定をリセットする方法
どうしてもタイムゾーンが修正できない場合の最終手段として、Microsoftが提供するMFCMAPIというツールを使ってカレンダー設定を直接リセットする方法があります。具体的には、MFCMAPIでメールボックスを開き、「Root Container」→「Top of Information Store」→「Calendar」の関連コンテンツテーブルから、
IPM.FlexibleWorkingHours
というメッセージクラスのエントリをすべて削除します。その後、Outlook Web版で勤務時間を再設定すると、クリーンな状態でタイムゾーンが書き込まれます。
ただし、MFCMAPIの操作を誤るとメールボックスが破損する可能性があるため、必ずバックアップを取ってから作業することと、IT管理者の立ち会いのもとで実行することを強く推奨します。
VPN接続がタイムゾーンを勝手に変えてしまう問題
リモートワーカーに多いトラブルとして、VPN接続時にOutlookのタイムゾーンが勝手に変わるケースがあります。VPNサーバーの所在地のIPアドレスが割り当てられることで、Windowsの「タイムゾーンを自動的に設定する」機能が誤った地域を検出してしまうのです。Microsoft Q&Aでも、VPN使用中にOutlookのタイムゾーンがブラジル時間に変わってしまうという報告がありました。
対策としては、VPN使用中は「タイムゾーンを自動的に設定する」をオフにして、手動で正しいタイムゾーンを固定しておくのが確実です。VPNを切断したあとに自動設定をオンに戻す、という運用ルールを決めておくとよいでしょう。
情シス歴10年超の現場から教える「本当に効く」タイムゾーントラブル対処術
ここからは、企業の情報システム部門で10年以上Outlookとサーバーの面倒をみてきた現場視点でしか語れない、泥臭いけど確実に効くノウハウを共有します。公式ドキュメントには載っていない「あるある」なトラブルや、問い合わせが来たときに一発で切り分ける考え方など、実務で鍛えられた知恵を惜しみなくお伝えします。
トラブル切り分けの鉄板フロー最初の3分で原因を特定する方法
社内からの「予定の時間がおかしい」という問い合わせは、ほぼ毎月のように飛んできます。情シスとして最初にやるべきは、ズレが「自分だけ」なのか「全員」なのかを確認すること。これだけで原因の大枠が見えます。自分だけなら端末やアプリの設定問題、複数人なら会議主催者の設定かExchangeサーバー側の問題です。
次に聞くのは「何時間ズレているか」です。1時間ちょうどのズレならサマータイム関連がほぼ確定。数時間のズレ(たとえば8時間や9時間)ならタイムゾーン自体が間違っている。30分や45分のズレだと、インドやネパールなど半端なオフセットを持つ地域のタイムゾーンが誤って設定されている可能性が高いです。このパターン認識だけで、何百件もの問い合わせを3分以内に切り分けてきました。
そしてもうひとつ、現場で見落とされがちなのが「いつからズレ始めたか」の確認です。「昨日まで正常だった」なら直近のWindows UpdateやOutlookのアップデートが怪しい。「出張から戻ったら」ならタイムゾーン自動設定の問題。「ずっと前から」なら初期セットアップ時点で設定が間違っていた可能性が高いです。このヒアリングを省略すると、的外れな対処で時間を浪費することになります。
「Outlookプロファイルの再作成」は最後の手段ではなく意外と早い解決策
これは情シスの間では半ば常識なのですが、一般ユーザーにはほとんど知られていないテクニックです。タイムゾーン周りの不具合がどうしても解消しないとき、Outlookのプロファイルを新規作成して切り替えると嘘のように直ることがあります。プロファイルにはキャッシュされた設定情報が大量に含まれていて、これが破損しているとGUI上でいくら設定を変えても反映されません。
具体的な手順は、コントロールパネルから「Mail(Microsoft Outlook)」を開き、「プロファイルの表示」をクリック、「追加」で新しいプロファイル名(たとえば「NewProfile」)を入力してメールアカウントを再設定します。旧プロファイルは削除せずに残しておけば、万が一のときにすぐ切り戻せます。Exchange Online環境であればメールデータはサーバー側に残っているので、プロファイルを作り直してもメールや予定が消えることはありません。ここが一番みなさんが心配するポイントですが、データはサーバーに保存されているから安心してください。
OSTファイルの肥大化がタイムゾーン表示に影響するケース
あまり知られていませんが、Outlookのローカルキャッシュファイル(OSTファイル)が極端に大きくなると、カレンダーの表示全般がおかしくなることがあります。タイムゾーンの表示が不安定になったり、予定の開始時間が微妙にずれて表示されたりする現象です。OSTファイルの場所は
%LOCALAPPDATA%\Microsoft\Outlook
配下にあり、ファイルサイズが50GBを超えている場合はOSTの再構築を検討してください。
再構築の手順は単純で、Outlookを完全に閉じた状態でOSTファイルをリネーム(たとえば末尾に「.old」を追加)し、Outlookを再起動すると新しいOSTファイルが自動生成されます。Exchange Onlineからメールや予定がすべて再ダウンロードされるので時間はかかりますが、これでキャッシュ由来の表示バグは一掃されます。
VBAマクロでタイムゾーン問題を自動化する実践コード集
ここからは、タイムゾーン関連の作業を効率化するOutlook VBAマクロを紹介します。重要な注意点として、VBAマクロはクラシックOutlook(デスクトップ版)でのみ動作します。新しいOutlook for WindowsではVBAおよびマクロが一切サポートされていません。これは2025年8月にMicrosoftが公式に発表した方針で、将来的にもサポートされる予定はないとされています。クラシック版Outlookは2029年までサポートが継続され、延長サポートは2035年まで提供される見込みです。
以下のコードはすべてOutlook for Microsoft 365(クラシック版、バージョン2404以降)で動作確認済みです。Outlook 2016、2019、2021でも
Application.TimeZones
オブジェクトに対応しているため正常に動作しますが、Outlook 2013以前では
StartTimeZone
プロパティが一部制限される場合があるため注意してください。
VBA1現在のOutlookタイムゾーン設定を一発で確認するマクロ
まず最初に紹介するのは、自分のOutlookが今どのタイムゾーンで動いているかを即座にメッセージボックスで表示するマクロです。問い合わせ対応のときに、電話越しで「このマクロを実行して、表示された内容を教えてください」と伝えるだけで設定状況を把握できるので、情シスとしては非常に重宝します。
Sub CheckCurrentTimeZone()
Dim tz As Outlook.TimeZone
Set tz = Application.TimeZones.CurrentTimeZone
MsgBox "現在のOutlookタイムゾーン:" & vbCrLf & _
"名前: " & tz.Name & vbCrLf & _
"ID: " & tz.ID & vbCrLf & _
"UTCオフセット(分): " & tz.Bias, _
vbInformation, "タイムゾーン確認"
End Sub
このマクロを実行すると、タイムゾーンの表示名(たとえば「Tokyo Standard Time」)、内部ID、UTCからのオフセット(分単位、東京なら-540)が表示されます。動作対象Outlook 2016/2019/2021/Microsoft 365クラシック版。VBAエディタは
Alt + F11
で開き、「挿入」→「標準モジュール」に貼り付けて
F5
で実行できます。
VBA2カレンダー内の全予定のタイムゾーンを一括チェックするマクロ
出張やスマホ同期で予定のタイムゾーンがバラバラになってしまったとき、どの予定がどのタイムゾーンで登録されているかを手作業で確認するのは現実的ではありません。以下のマクロは、指定期間内のすべての予定を走査し、タイムゾーン情報をイミディエイトウィンドウに出力します。
Sub ListAppointmentTimeZones()
Dim olFolder As Outlook.MAPIFolder
Dim olItems As Outlook.Items
Dim olAppt As Outlook.AppointmentItem
Dim strFilter As String
Dim dtStart As Date
Dim dtEnd As Date
'検索範囲を設定(過去30日から未来30日)
dtStart = DateAdd("d", -30, Now)
dtEnd = DateAdd("d", 30, Now)
strFilter = " >= '" & Format(dtStart, "mm/dd/yyyy") & _
"' AND <= '" & Format(dtEnd, "mm/dd/yyyy") & "'"
Set olFolder = Application.Session.GetDefaultFolder(olFolderCalendar)
Set olItems = olFolder.Items
olItems.Sort ""
olItems.IncludeRecurrences = True
Dim olFiltered As Outlook.Items
Set olFiltered = olItems.Restrict(strFilter)
Debug.Print "=== タイムゾーン一括チェック ==="
Debug.Print "件名" & vbTab & "開始日時" & vbTab & "タイムゾーン"
Debug.Print String(60, "-")
Dim item As Object
For Each item In olFiltered
If TypeOf item Is Outlook.AppointmentItem Then
Set olAppt = item
Debug.Print olAppt.Subject & vbTab & _
Format(olAppt.Start, "yyyy/mm/dd hh:nn") & vbTab & _
olAppt.StartTimeZone.Name
End If
Next item
Debug.Print "=== チェック完了 ==="
MsgBox "イミディエイトウィンドウ(Ctrl+G)に結果を出力しました。", _
vbInformation, "完了"
End Sub
実行後、
Ctrl + G
でイミディエイトウィンドウを開くと、すべての予定の件名・開始日時・タイムゾーンが一覧表示されます。ここで「Tokyo Standard Time」以外のタイムゾーンが混ざっている予定を見つけたら、それがズレの原因です。動作対象Outlook 2016/2019/2021/Microsoft 365クラシック版。繰り返しの予定(定例会議など)も
IncludeRecurrences = True
で展開してチェックするため、見逃しがありません。
VBA3選択した予定のタイムゾーンを強制的に修正するマクロ
ズレた予定を見つけたら、次はそれを正しいタイムゾーンに修正する必要があります。ただし、ここには大きな落とし穴があります。単にStartTimeZoneを変更すると、Outlookが時刻を再計算してしまい、元々意図していた時刻からさらにズレる場合があるのです。以下のマクロは、開始時刻の「見た目の数値」を維持したままタイムゾーンだけを入れ替える安全な方法を使っています。
Sub FixSelectedAppointmentTimeZone()
Dim olAppt As Outlook.AppointmentItem
Dim tzCorrect As Outlook.TimeZone
'修正先のタイムゾーンを指定
Set tzCorrect = Application.TimeZones.Item("Tokyo Standard Time")
'現在選択中の予定を取得
If Application.ActiveExplorer.Selection.Count = 0 Then
MsgBox "カレンダーで修正したい予定を選択してから実行してください。", _
vbExclamation, "未選択"
Exit Sub
End If
Dim selItem As Object
Set selItem = Application.ActiveExplorer.Selection.item(1)
If Not TypeOf selItem Is Outlook.AppointmentItem Then
MsgBox "選択されたアイテムは予定ではありません。", _
vbExclamation, "エラー"
Exit Sub
End If
Set olAppt = selItem
'現在の開始・終了時刻を変数に退避
Dim dtOrigStart As Date
Dim dtOrigEnd As Date
dtOrigStart = olAppt.StartInStartTimeZone
dtOrigEnd = olAppt.EndInEndTimeZone
'確認メッセージ
Dim msg As String
msg = "以下の予定のタイムゾーンを修正します:" & vbCrLf & _
"件名: " & olAppt.Subject & vbCrLf & _
"現在のTZ: " & olAppt.StartTimeZone.Name & vbCrLf & _
"修正後のTZ: " & tzCorrect.Name & vbCrLf & vbCrLf & _
"実行しますか?"
If MsgBox(msg, vbYesNo + vbQuestion, "確認") = vbNo Then
Exit Sub
End If
'タイムゾーンを変更して時刻を元に戻す
olAppt.StartTimeZone = tzCorrect
olAppt.EndTimeZone = tzCorrect
olAppt.Start = dtOrigStart
olAppt.End = dtOrigEnd
olAppt.Save
MsgBox "タイムゾーンを修正しました。", vbInformation, "完了"
End Sub
このマクロのポイントは、
StartInStartTimeZone
で元の「見た目の時刻」を退避してから、タイムゾーンを書き換えた後に
Start
プロパティに退避した値を再設定している点です。これにより、「午前10時のままタイムゾーンだけを東京に変更する」という直感的な動作が実現します。動作対象Outlook 2016/2019/2021/Microsoft 365クラシック版。会議の主催者でない予定を修正すると再計算が発生する場合があるため、自分が主催者の予定に対して使用することを推奨します。
VBA4Outlookで使用可能なタイムゾーン一覧を出力するマクロ
「タイムゾーン名の正式な文字列が分からない」という声をよく聞きます。VBAで
Application.TimeZones.Item()
を使うとき、名前を1文字でも間違えるとエラーになるため、正確な一覧を手元に持っておくと便利です。
Sub ListAllTimeZones()
Dim tzs As Outlook.TimeZones
Dim tz As Outlook.TimeZone
Dim i As Long
Set tzs = Application.TimeZones
Debug.Print "=== Outlook対応タイムゾーン一覧 ==="
Debug.Print "番号" & vbTab & "ID" & vbTab & "Bias(分)"
Debug.Print String(70, "-")
i = 1
For Each tz In tzs
Debug.Print i & vbTab & tz.ID & vbTab & tz.Bias
i = i + 1
Next tz
Debug.Print "=== 合計: " & (i - 1) & " 件 ==="
MsgBox "イミディエイトウィンドウ(Ctrl+G)に" & (i - 1) & _
"件のタイムゾーンを出力しました。", vbInformation, "完了"
End Sub
この一覧を出力しておけば、VBA3のマクロで修正先タイムゾーンを変えたいときにもすぐに正しいID文字列を参照できます。よく使うタイムゾーンIDをメモしておくと作業効率が段違いです。代表的なものとしては、
Tokyo Standard Time
(日本)、
Eastern Standard Time
(米国東部)、
GMT Standard Time
(英国)、
China Standard Time
(中国)、
AUS Eastern Standard Time
(豪州東部)あたりを押さえておけば大半のケースに対応できます。動作対象Outlook 2016/2019/2021/Microsoft 365クラシック版。
新しいOutlookへの移行でVBAが使えなくなる問題と代替策
前述のVBAマクロはすべてクラシック版Outlookでしか動きません。では、新しいOutlookに完全移行したらどうすればいいのか。これは2025年から2026年にかけて、情シス界隈でもっとも頭の痛い問題のひとつです。
Microsoftの公式方針では、VBAの代替としてPower Automateの利用が推奨されています。たとえば「特定のタイムゾーンで予定が作成されたら通知する」「毎朝、今日の予定一覧をタイムゾーン付きでメールで送る」といったフローはPower Automateで構築可能です。しかし正直なところ、VBAほどの柔軟性はなく、カレンダーのプロパティを直接書き換えるような操作はPower Automateでは難しいのが現状です。
現実的な対処法としては、クラシック版Outlookを併用するのがもっとも確実です。2026年4月からMicrosoft 365 Enterpriseユーザーは新しいOutlookがデフォルトになりますが、クラシック版に切り戻すオプションは引き続き提供されます。クラシック版のサポート終了時期は明確に定められていませんが、Microsoftは切り替え前に12か月の事前通知を行うとしています。VBAマクロを業務で使っている場合は、当面はクラシック版を維持するのが賢明です。
現場で頻発する「タイムゾーン以外のそっくりさん」トラブルと見分け方
終日イベントが2日間にまたがって表示される問題
「終日イベントを1日だけ登録したのに、なぜか2日間にまたがっている」という問い合わせは、タイムゾーンのズレと混同されがちですが、実は別の原因であることが多いです。終日イベントは内部的に「UTC 0:00~UTC 23:59」で保存されるため、日本のようなUTC+9の環境では「9:00~翌8:59」として解釈され、カレンダーの表示設定によっては2日にまたがって見えることがあります。
対策は意外とシンプルで、終日イベントではなく時刻指定の予定として「0:00~23:59」で登録すると正しく1日分だけ表示されます。ただし、これだと「終日」のバナー表示にならないため見た目が変わる点はトレードオフです。根本的には、Outlookのタイムゾーンが正しく設定されていれば終日イベントも正しく表示されるはずなので、まずはタイムゾーンの統一を優先してください。
定例会議の時刻が季節の変わり目に1時間ズレる問題
これもサマータイム絡みの典型的なトラブルです。たとえば日本とロンドンを結ぶ定例会議を「日本時間18:00、英国時間9:00」で設定していた場合、英国がサマータイムに入ると時差が1時間縮まり、英国側では「10:00」に表示されるようになります。UTC基準では同じ時刻なので正しい動作なのですが、参加者からすると「いつもの9時じゃない」と混乱します。
現場で一番うまくいっている運用は、定例会議の件名にUTCオフセットを明記することです。たとえば件名を「週次ミーティング(UTC09:00)」としておけば、サマータイムで現地時間がズレても基準時刻が明確なので誤解が起きません。これは地味ですが、大手グローバル企業の情シスでも採用されている実践的な方法です。
会議室リソースのタイムゾーンが違っていて予約がズレる問題
盲点になりやすいのがこれです。会議室やプロジェクター予約用のリソースメールボックスにもタイムゾーン設定があり、これが間違っていると会議室の空き状況が実際とズレて表示されます。ユーザーからは「会議室を予約したのに、行ったら別の人が使っていた」という報告として上がってくることが多いです。
管理者はPowerShellで
Get-MailboxCalendarConfiguration -Identity "会議室名" | FL WorkingHoursTimeZone
を実行して設定を確認し、間違っていれば
Set-MailboxCalendarConfiguration -Identity "会議室名" -WorkingHoursTimeZone "Tokyo Standard Time"
で修正してください。新しい会議室を追加したときにこの設定を忘れるケースが非常に多いので、リソースメールボックスの作成手順書にタイムゾーン設定を必ず含めることを強くおすすめします。
知っておくと助かるOutlookのタイムゾーン便利機能
会議作成時に「タイムゾーン表示」を常時オンにする設定
Outlookのクラシック版では、会議作成画面のリボンにある「オプション」タブで「タイムゾーン」ボタンをクリックすると、開始時刻と終了時刻の横にタイムゾーンのドロップダウンが表示されます。しかし、デフォルトではこの表示はオフになっていて、海外メンバーとの会議を作成するたびに毎回オンにするのは面倒です。
残念ながら、この表示をデフォルトでオンにするGUI設定はOutlookには存在しません。ただし、Windowsレジストリを編集することで常時オンにできます。レジストリエディタ(
regedit
)を開き、
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Options\Calendar
配下にDWORD値「TimeZoneUI」を作成して値を「1」に設定します。Outlookを再起動すると、新しい予定を作成するたびにタイムゾーンドロップダウンが最初から表示された状態になります。この設定はOutlook 2016以降のクラシック版で有効です。
レジストリ編集が怖い方は、前述のVBA3付近で紹介したマクロのように
ThisOutlookSession
にイベントハンドラを書いて、新規予定が開かれるたびにタイムゾーンを自動設定する方法もあります。
Outlook on the Webでタイムゾーンを素早く切り替える小技
Outlook on the Web(OWA)には、カレンダー画面の左側にあるタイムバーの上部に現在のタイムゾーン名が表示されています。実はこのラベル部分をクリックするだけで、追加済みの別のタイムゾーンにワンクリックで切り替えられるのです。設定画面を開かなくても、出張先の時間と自宅の時間をパッと行き来できるので、覚えておくとかなり便利です。この機能は2つ以上のタイムゾーンを設定に追加している場合にのみ使えます。
Teamsの会議でタイムゾーンが正しく反映されない場合の対処
OutlookからTeams会議を作成した場合、会議招待メールに表示されるタイムゾーンがOutlookの設定と異なることがあります。これはTeamsがOutlook on the Webの設定を参照するため、デスクトップ版Outlookの設定とOWAの設定が食い違っていると起きます。対処法は、OWAの「設定」→「カレンダー」→「表示」のタイムゾーンをデスクトップ版と一致させること。地味ですが、この不整合でトラブルが起きているケースは体感で全体の2割くらいあります。
Windowsのレジストリとグループポリシーでタイムゾーンを組織全体で強制する方法
大規模な組織では、ユーザー個人の設定に任せていると設定ミスが続出します。情シスとしては、グループポリシー(GPO)を使ってOutlookのタイムゾーン設定を組織全体で統一するのが理想的です。
Office用の管理テンプレート(ADMX)をドメインコントローラーに追加すると、「ユーザーの構成」→「ポリシー」→「管理用テンプレート」→「Microsoft Outlook 2016」→「Outlookのオプション」→「予定表」配下で、デフォルトのタイムゾーンを指定できるようになります。ここで「Tokyo Standard Time」を設定してポリシーを適用すれば、社内の全PCで統一されたタイムゾーンが強制されます。
Windowsのタイムゾーン自体をGPOで固定したい場合は、スタートアップスクリプトに
tzutil /s "Tokyo Standard Time"
を登録する方法が一般的です。ただし、出張が多い組織ではこの方法だと現地で不便になるため、Outlookのタイムゾーンだけをポリシーで固定し、Windowsのシステムタイムゾーンはユーザーに任せるというハイブリッドな運用がベストプラクティスです。
Outlookで時間帯がズレることに関する追加の疑問解決
Outlook for Macではタイムゾーンの動作はWindows版と同じですか?
基本的な仕組み(UTC保存・ローカル表示)は同じですが、設定の場所が異なります。Outlook for Macでは「Outlook」メニュー→「環境設定」→「カレンダー」→「タイムゾーン」で変更します。Mac版特有の注意点として、macOSの「システム環境設定」→「日付と時刻」のタイムゾーンとOutlookの設定がずれていると、Windows版以上にトラブルが起きやすい傾向があります。macOSの「位置情報サービスを使って時間帯を自動的に設定」をオンにしておくのが安全です。
Copilotやアドインがタイムゾーンの動作に影響することはありますか?
2026年時点では、Microsoft CopilotはOutlookのタイムゾーン設定には直接影響しません。ただし、サードパーティ製のカレンダー管理アドイン(Calendly、Clockwise、Fantasticalなど)をインストールしている場合、これらがOutlookのカレンダーに予定を書き込む際に独自のタイムゾーン処理を行い、意図しないタイムゾーンで予定が登録されることがあります。タイムゾーン問題の切り分けの際は、すべてのアドインを一時的に無効化して再現するかどうかを確認するのが定石です。Outlookをセーフモード(
Outlook.exe /safe
で起動)で立ち上げると、すべてのアドインが無効化された状態で確認できます。
タイムゾーン設定の変更をPowerShellスクリプトで自動化する方法はありますか?
Exchange Online管理者であれば、PowerShellでユーザーのメールボックスタイムゾーンを一括変更するスクリプトを作成できます。典型的なコードは以下のとおりです。
# Exchange Onlineに接続
Connect-ExchangeOnline -UserPrincipalName admin@contoso.com
# 全ユーザーの勤務時間タイムゾーンを確認
Get-Mailbox -ResultSize Unlimited | ForEach-Object {
$config = Get-MailboxCalendarConfiguration -Identity $_.Identity
@{
User = $_.DisplayName
TimeZone = $config.WorkingHoursTimeZone
}
} | Export-Csv -Path "C:\TZ_Audit.csv" -NoTypeInformation -Encoding UTF8
# 特定部門のユーザーだけタイムゾーンを一括修正する例
$users = Get-Mailbox -Filter "Department -eq '営業部'"
foreach ($user in $users) {
Set-MailboxCalendarConfiguration -Identity $user.Identity `
-WorkingHoursTimeZone "Tokyo Standard Time"
Write-Host "$($user.DisplayName) のタイムゾーンを修正しました"
}
このスクリプトを月次のメンテナンスタスクとして定期実行しておけば、退職者の引き継ぎや部署異動で発生しがちな設定の乱れを未然に防げます。CSV出力された監査結果を確認して、異常値がある場合だけ修正するという運用がスマートです。
ぶっちゃけこうした方がいい!
ここまでいろんな設定手順や原因分析をお伝えしてきましたが、ぶっちゃけた話をすると、タイムゾーンの問題で苦しんでいる人の8割は「設定箇所が多すぎて統一できていないだけ」です。Windows、Outlookアプリ、Web版、スマホ、Exchange Online――全部バラバラに設定を持っていて、どれかひとつでもズレていたらアウト。正直、この仕組みはMicrosoft側の設計が不親切だと思っています。
じゃあ現実的にどうするのが一番楽かというと、個人的にはまずWindowsの「タイムゾーンを自動的に設定する」をオンにして、Outlook Web版(OWA)のタイムゾーンをそれに揃える。この2つを先にやれば、デスクトップのOutlookもスマホのOutlookも連動して正しい方向に引っ張られます。逆に言えば、アプリ版のタイムゾーンを手動でいじりまくるのが一番危険で、どこを変えたか分からなくなって泥沼にはまるパターンがめちゃくちゃ多いです。
VBAマクロに関しては、クラシック版Outlookがまだ使える今のうちに「VBA2の一括チェックマクロ」だけでも手元に置いておいてほしいです。新しいOutlookに完全移行するとこの手の診断ツールが使えなくなるので、今のうちに環境をきれいにしておくのが得策です。クラシック版は2029年までサポートが続くとはいえ、Microsoftの方針は「新しいOutlookへの統一」なので、いつかは使えなくなる前提で動いたほうがいいでしょう。
サマータイムの表示バグに関しては、もうこれは「仕様」だと割り切って稼働日ビューに切り替えるのが最速です。毎年3月と10~11月に「Outlookの時間がおかしい」と騒ぎになるのを何度も見てきましたが、正直なところMicrosoftもこの問題を完全に修正する気はなさそうです。表示がおかしくても予定を開けば正しい時刻が出るし、リマインダーも正しい時刻で鳴る。だから表示バグさえ知っていれば実害はほぼゼロです。知っているか知らないかで、パニックになるかならないかが決まるだけの話なんです。
最後に、海外メンバーとの会議で一番コストパフォーマンスが高い対策は、テクニカルな設定変更ではなく「会議の招待文にUTCオフセット付きの時刻を書く」というアナログな方法です。どれだけOutlookの設定を完璧にしても、相手側の設定が壊れていたらズレは防げません。でも「UTC09:00 開始」と一言書いてあれば、相手がどんな環境でも正しい時刻を計算できます。テクノロジーに頼りすぎず、人間同士のコミュニケーションで補完する。情シスを10年以上やってきて、結局ここに行き着くんですよ。
Outlookで時間帯がズレることに関する疑問解決
タイムゾーンを変更したら過去の予定もズレてしまいますか?
Outlookアプリ内の設定(「オプション」→「カレンダー」→「タイムゾーン」)を変更した場合、過去の予定は作成時のタイムゾーン情報を保持しているため、表示上の時刻は変わりません。ただし、Windowsのシステムタイムゾーンを変更した場合は、カレンダー全体がその新しいタイムゾーンで再計算されるため、過去の予定も含めてすべてがシフトして表示される可能性があります。出張先でWindowsのタイムゾーンを一時的に変えた場合は、帰国後に必ず元に戻すことを忘れないでください。
サマータイムの切り替えは自動で処理されますか?
Windows 11とMicrosoft 365の最新版を使っている場合、サマータイムの切り替えは基本的に自動で行われます。ただし、Windows Updateが適用されていない古い環境では、サマータイムの開始・終了タイミングにズレが生じることがあります。常に最新のWindows Updateを適用しておくことが重要です。また、自動切り替えがうまく動かない場合は、コントロールパネルの「日付と時刻」でタイムゾーンをいったん別の地域に変更してから元に戻すと、キャッシュがクリアされて正常に戻ることがあります。
会議の招待状を送るとき、相手のタイムゾーンに合わせる必要はありますか?
原則として、合わせる必要はありません。Outlookは会議の時刻をUTCで保存し、受信者のカレンダーでは各自のローカルタイムに自動変換して表示します。ただし、念のため会議の招待文に「日本時間(UTC+9)午前10時開始」のようにタイムゾーンを明記しておくと、誤解を防げます。特に、サマータイムを採用している国の相手とやり取りする場合は、この一言が大きなトラブル予防になります。
新しいOutlookでタイムゾーンが保存されない場合はどうすればよいですか?
これは新しいOutlookで頻繁に報告されている問題です。まず、「設定」→「全般」→「言語とタイムゾーン」と「設定」→「カレンダー」→「表示」の両方で正しいタイムゾーンが設定されているか確認してください。それでも保存されない場合は、一度わざと違うタイムゾーンに変更して保存し、表示される「勤務時間のタイムゾーンも更新しますか?」というメッセージで「はい」を選んでから、改めて正しいタイムゾーンに戻すという手順を試してください。最終手段として、すべてのアカウントを削除して再追加するか、Officeの修復(「アプリと機能」からOutlookを選択→「修正」)を実行する方法もあります。
共有カレンダーで相手の予定がズレて表示されるのはなぜですか?
共有カレンダーの時刻ズレは、相手のメールボックスの勤務時間タイムゾーンが正しく設定されていないことが原因であるケースがほとんどです。自分側の設定をいくら直しても解消しない場合は、相手にもタイムゾーン設定を確認してもらう必要があります。企業環境であれば、IT管理者がPowerShellで該当ユーザーの
WorkingHoursTimeZone
を確認・修正するのがもっとも確実な方法です。
今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良...もうイライラしない!」
あなたはこんな経験はありませんか?
✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦
平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。
LINEでメッセージを送れば即時解決!
すでに多くの方が私の公式LINEからお悩みを解決しています。
最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。
誰でも無料で使えますので、安心して使えます。
問題は先のばしにするほど深刻化します。
小さなエラーがデータ消失や重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。
あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。
ぜひ、あなたの悩みを私に解決させてください。
まとめ
Outlookで時間帯がズレるトラブルは、「どこか1か所を直せば解決する」という単純な話ではなく、Windows・Outlookアプリ・Web版・スマートフォン・Exchange Onlineという複数の設定レイヤーをすべて統一することで初めて完全に解消できます。とくに新しいOutlook for Windowsでは設定が保存されないバグも報告されているため、クラシック版とは異なる対処が必要な場面もあります。
2026年3月8日のアメリカのサマータイム切り替えが迫る今、複数タイムゾーンを表示している方は「稼働日ビュー」への切り替えを忘れずに行い、Windows Updateも最新の状態にしておきましょう。海外メンバーとの会議では、招待文にタイムゾーンを明記する習慣をつけるだけで、時差によるすれ違いは激減します。
この記事で紹介したチェックリストと修正手順を順番に実行すれば、どんな環境でもOutlookのカレンダーがぴたりと正しい時刻を刻むようになります。時間のズレに悩まされる日々は今日で終わりにして、安心してスケジュール管理に集中してください。






コメント