CommentOut

OneDriveやSharePoint等のクラウドストレージを使うとOutlookがエラーになる OneDriveやSharePoint等のクラウドストレージを使うとOutlookがエラーになる

OneDriveやSharePoint等のクラウドストレージを使うとOutlookがエラーになる

公開日:  最終更新日:

最近はテレワークの普及もあり、クラウドストレージがかなり一般に浸透してきました。
しかし、便利なクラウドストレージも設定を誤ると思わぬトラブルが発生します。
今回はOutlookとOneDrive・SharePointなどのクラウドストレージは『相性が悪い』という話です。

Outlookがエラーになって使えなくなった

最近お客さんから「突然メールが開けなくなって・・・」というお問い合わせがチラホラありました。
パソコンの設定を確認させていただくと、Outlookを使用しており、Outlookから以下のようなエラーメッセージが出ていました。

このファイルを使用している他のアプリケーションを終了して、再度実行してください。コンピュータの再起動が必要となる可能性もあります。

Outlookより

メールの閲覧にOutlookを使っている人は多いと思いますが、こんなメッセージが表示されたら焦ると思います。
しかし、落ち着いて対処することで、メールを復旧できます。

Outlookのエラーの原因

OneDriveやSharePointなどのクラウドストレージを使っていないか?

エラーメッセージを見ると「このファイルを使用している他のアプリケーション」と書かれています。
ここでいう『このファイル』というのは、メールの設定や受信したメールデータが保存されている『ファイル』のことです。
普段意識することはありませんが、Outlookが受信したメールは、パソコンのどこかにしっかりとファイルとして保存されているのです。

ただし、Outlookのファイルを使用するのは、Outlookだけのはずですが、メッセージは確かに「他のアプリケ-ションが使用している」と言っています。
実は、Outlookのファイルを開いて中のデータを参照しているのはOutlookだけですが、OneDriveやSharePointなどのファイル同期型のクラウドストレージを使用していると、ファイルを同期する時にはクラウドストレージがOutlookのファイルにアクセスしてきます。

このクラウドストレージこそがOutlookのファイルに横からちょっかい出している犯人です。

Outlookのエラーを戻す方法

OneDriveやSharePointなどの『同期』を止めてください

とりあえず、犯人はクラウドストレージだから、こいつの動きを止めてください。
クラウドストレージのアプリケーションタスクを終了させなくても、同期を停止させるだけで大丈夫です。

同期を停止後にOutlookを開き直せば、ちゃんと開くことができるはずです。

画面の右下に雲みたいなマークがあると思います。
これをクリックして

OneDriveのちっさいウィンドウが出たら、歯車マークを押して、『同期の一時停止』で同期を止めます。

これでクラウドストレージの同期を停止させることができます。

Outlookのエラー再発を防止しましょう

クラウドストレージの同期を停止させることで、Outlookのエラーが止まりますが、このままではクラウドストレージは使えませんし、クラウドストレージの同期を再開すると、またOutlookのエラーが発生してしまいます。

クラウドストレージの同期を再開してもOutlookを使えるようにするためには、Outlookファイルを同期フォルダ外に移動させましょう!

Outlookのデータファイルはどこにある?

問題は『Outlookのデータファイルはどこにあるか?』です。
でも、このエラーが出てるなら大体見当がつきます。
クラウドストレージの同期フォルダ内のどこかにあるはずです。
特にOneDriveやSharePointではユーザーフォルダ以下に同期フォルダが作られ、ドキュメントフォルダが同期フォルダ内に移動します。

Outlookのデータファイルの場所を確認する方法

Outlookのデータファイルの場所を探すには、まずOutlookを開きます。
※エラーのせいでそもそもOutlook開けねーよ!ちくしょー!って人は、先にOneDriveやSharePointの同期を止めてみてください。

Outlookを開いたら、メニューのファイルを選択します。

『アカウント設定』を選択します。

『アカウント設定』の『アカウント設定』を選択します。

表示される画面にメールアカウントの場所が記載されています。
たぶんですけど、こういう感じになってないですか?
Users > [ユーザー名] > OneDrive > Documents > Outlook > [メールアドレス].pst

Outlookファイルを同期フォルダ外に移動させましょう

Outlookファイルの場所がわかったら、あとはファイルを移動させるだけですが、Outlookを開いている状態では移動させることができません。
なぜなら、Outlookがファイルにアクセスを行っているからですね。

なので、ファイルの場所を確認したら、まずOutlookを閉じます。

そして、ファイルを同期フォルダ外に移動させます。
場所はどこでも良いので、Cドライブ直下にOutlookっていう名前のフォルダを作って、そこにコピー&ペーストしましょう。

Outlookのファイル参照先を変更する

ファイルをコピー&ペーストしても、Outlookの設定まで勝手に変わるわけではありません。
Outlookを起動して、設定を変更してやる必要があります。

※カット&ペーストで元の場所のファイルを消してしまっている場合は起動時にエラーが出るかも
でも、ファイルを元の場所に戻さなくても、新しい参照先を登録してあげれば良いです。

Outlookを起動したら、先ほどと同じく、アカウント設定を開いてください。
データファイルの場所は変わっていないはずです。

下にある『フォルダーの変更』ボタンではなく、データファイルタブを開きます。

さらにデータファイルタブでは、『設定』ではなく、『追加』を選択します。
今の設定を変更するのではなく、移動させたデータを全く新しいデータとして追加するんです。

先ほど移動させたデータファイルを選択して追加ください。

追加できたら、新しいデータファイルを既定に設定変更します。

※既定の設定を変更してもしばらくは古いファイルの設定を削除することができません。
 2時間くらい放置してから削除を試してみてください。

OutlookとOneDriveの共存は不可能?

OneDriveを使いながらOutlookを使うことはできないのか?
いえいえ、そんなことは決してありません。

Outlookのデータファイルの場所をOneDriveの同期フォルダ外に移動させてやればいいだけです。
やり方もとっても簡単!

OneDriveの同期を止めて、Outlookのアプリも落とします。
そして、Outlookのデータファイルの場所を開いて、ファイルをコピーします。
Cドライブ直下やユーザーフォルダ直下に「Outlook」などの適当な名前のフォルダを作成し、そこにコピーしたOutlookのデータファイルをペーストします。

次にOutlookを開き、先ほどのアカウントの設定画面の『データファイル』タブを開きます。
そして、『追加』ボタンを押して、コピー&ペーストしてきた新しいデータファイルを追加します。

新しく追加されたデータファイルを『既定の設定』に切り替えて、しばらく放置します。
(主要な設定を既定の設定に切り替わった新しいデータファイルに移すため)

データが移し終わったら、古いデータファイルを削除して完了です。

Outlookとクラウドストレージの間で何が起きてる?

Outlookはメールを受信するとデータファイルに保存します。
そうすると、データファイルの最終更新日が新しくなります。

クラウドストレージは更新日が新しくなったことを確認すると、サーバーにファイルを同期するためにデータファイルをコピーしようとします。

しかし、ここで問題が発生します。
Outlookはメールを受信する時、1通だけ受信するわけではありません。
次のメールを保存しようと思ったら、既にOneDrive等がコピーを行うためにデータファイルにアクセス中です。

「データファイルがOneDriveに使われてて、メールが保存できないじゃないか!チクショー!」
これが先ほどのOutlookがエラーを出している状態で、この状態を『デッドロック』と言います。

プログラムはファイルの中身を読み書きする時、ファイルストリームやハンドラと呼ばれる『プログラムとファイル間の結びつき』を作ります。
この結びつきがどこかと出来ている状態で、別のプログラムがアクセスしようとしても、「今わしが使っとるんじゃ!あっち行ってろ!」とはじき出されてしまって、アクセスができない状態になってしまいます。

宣伝
WordPressサイトのテンプレート編集やトラブル対応、バグ修正、簡単なJavascriptの作成(カルーセルやバリデーション等)など、小規模なスポット対応を受け付けております。
もしお困りごとがありましたら、お問い合わせフォームよりご相談ください。

この記事を書いた人

uilou

uilou

プログラマー

基本的に、自分自身の備忘録のつもりでブログを書いています。 自分と同じ所で詰まった人の助けになれば良いかなと思います。 システムのリファクタリングを得意としており、バックエンド、フロントエンド、アプリケーション、SQLなど幅広い知識と経験があります。 広いだけでなく、知識をもっと深堀りしていきたいですね。