朋亮VBAでOneDriveに保存してあるファイルのパスが「https://d.docs.live.net/」になって困った時の解決法はコレだポストシェアはてブ送るPocket7今回は、OneDrive(ワン・ドライブ)に保存したExcelファイルのVBAでフルパスが取得できない時の対処法についてのお話です。OneDriveというのはマイクロソフト社が無料で提供している「インターネット上にファイルを保管できるサービス」のことを言います。OneDriveにファイルを保存しておけば、外出先からでもそのファイルを編集できちゃうとっても便利なサービスなんです。そんな便利なOneDriveですが、ExcelなどのVBAを実行するとフルパスが取得できないというトラブルに見舞われることがあるんですね。フルパスが取得できないと非常に困ることが多いのでそんな時の対処法についてのお話です。まとめフルパスが取得できない原因まず、症状について確認してみましょう。今回は、テスト用の実験ファイルを用意してみました。こんな風にOneDriveに保存(アプリで自分のパソコンに保存)してフルパスを取得しようとすると「https://d.docs.live.net/~」と表示されてしまうんですね。本当は、こんな風に「C:¥Users¥パソコンの名前¥Desktop」のようにローカル(自分のパソコンのファイルの場所)のフルパスを取得したいんですよね。してパスではなくURLを取得しちゃうんでしょ?どうにも原因は、ココにあるようです。コレは、オンライン版のOneDriveで同じファイルを開いた結果です。何か気づきませんか?そう、「onedrive」と「d.docs」という部分意外全く同じURLですよね。OneDrive(アプリ版)に保管したファイルから、フルパスを取得しようとすると、ローカルではなくWeb版のフルパスを取得しちゃうんです。これ、メッチャ困るんですよね。してか?例えば、今開いているファイルを自動的にデスクトップに保存したい時があるとしましょう。いう時は、フルパスを取得して自分のファイル名を加工し、なおかつデスクトップに保存する。なんてことをやりたいんですが、デスクトップの位置は「C:¥Users¥パソコンの名前¥Desktop」です。ポイントは「パソコン名」なんですが、これはパソコンによって違います。フルパスを取得すればパソコン名が何であっても、その都度取得できるので問題無いんです。これがURLになってしまうと当然エラーになるので大きな問題になるという訳なんです。そもそもパスじゃないですからね。対策方法を見ていきましょう。OneDrive上でフルパスを取得する方法OneDriveに保存した状態でフルパスを取得するコードは次の通りです。Subすごく単純な対策方法ですが、このコードを簡単に説明すると取得したフルパスが「https」から始まっていた場合は、パソコンに教えてもらったパスに「OneDrive」というパスを繋げてフルパスに修正してね。コレだと分かりにくいのでコードの解説をしましょう。Subハイライト部分について解説します。“\OneDrive”コレを日本語で説明すると、もし、このブックのパスの左から5文字が、「https」だったらPathという変数に「UserProfile(ユーザープロファイル)」という環境変数から取得したパスに「\OneDrive」という文字を繋いでね。このとき「UserProfile」から取得したパスは、「C:\Users\コンピュータ名」まで返してくれるのでそれに「\OneDrive」を繋げてフルパスにしています。ポイント「環境変数」とは、OSが持っている変数のことを言います。今回の場合、「UserProfile」という変数には何が入っているの?とOSに聞いた結果「C:¥Users¥コンピュータ名」というパスが入っているよと教えてくれたので、教えてもらったパスの最後にOneDriveのパスをくっつけてフルパスに加工しています。「Environ(“UserProfile”)」という部分は、Environ(エンバイロン)という環境変数を取得するための関数でパスを取得しています。要は、Environ(“環境変数名”)とすることでパスを取得できたという訳ですね。ファイルはOneDriveの直下(OneDriveを開いてすぐのフォルダ)に保存して検証しています。深い階層(色々なフォルダの中にある)の場合は、違う工夫が必要になるので注意して下さい。まとめさて、今回のVBAでOneDriveのフルパスが取得出来ない時の解決法はいかがでしたか?この現象はある日突然起こりました。今まで普通に動いていたプログラムが突然エラーを表示して使えなくなってしまったんです。OneDriveがアップデートされた時に問題が発生するようになったようです。同じトラブルで悩んでいる方は、参考にしてみて下さい。今まで順調に動いていたプログラムが突然止まるのは、ゾッとしますよね。そんな時の参考にしてもらえれば嬉しいです。最後まで読んでいただきありがとうございました。それじゃあ、次回また会おう!!そんじゃね。読み込み中...ExcelExcelOneDrivevbaトラブルパスこの記事が気に入ったらいいねしよう!最新記事をお届けします。04:51suzuさんコメントいただきありがとうございます。お役に立てたようで何よりです。これからも、役立つ記事を書いていきたいと思います。コメントをキャンセルメールアドレスが公開されることはありません。すげぇフィルターの使い方RECOMMENDこちらの記事も人気です。