今日を乗り切るExcel研究所

Excel に働かされていませんか

Excelファイルをどこからダウンロードしたのか思い出したい

今回は、ダウンロードした Excel ファイルから、ダウンロード元の場所を取得する方法を調べます。

テレワークしてますか

ご時世がら、在宅での仕事が増えている今日この頃、いかがお過ごしでしょうか。

筆者的にはなかなか快適で、オフィスでよりもはかどっている感じです。

一方、ちょっと面倒なこともあります。

その一つは、社内の文書ファイルやデータを編集するときなどです。

いま時は Excel オンラインやらリモートデスクトップなど、セキュアで便利なアクセス手段がありますが、やはり Excel は手元 PC で作業したいので、いったんダウンロードして作業し、終わったらアップロードしなおしています。

問題は、ファイルを戻すとき、元の場所(サイトやフォルダページ)が分からなくなることです。

特にいくつもある社内サイトのフォルダはごちゃごちゃしていて、たどり着くまでムダに時間がかかります。

もちろんブックマークもマメにしているのですが、それも増えすぎてどれが何だか役にたちません。

ダウンロードしたファイルがあった場所を、スッと開く方法はないのでしょうか。

ダウンロード元のページを開くには

インターネット上にあるコンテンツの「ありか」を表す情報を「URL」と言います。

そう、あの「http://〜」や「https://〜」ではじまる長い文字列のことです。

URL はいわばネット上の住所氏名のようなものです。 ファイルがあった場所の URL さえ分かれば、迷うことなくピンポイントで開くことができます。

ブラウザのダウンロード履歴から

Webサイトからダウンロードしたファイルなら、それ自身の URL 取得するのは難しいことではありません。

たいていの Web ブラウザには「ダウンロード履歴」という機能があり、ファイル名とともに、ダウンロードしたときの URL が記録されているからです。

ダウンロード履歴は、メニューからもたどれますが、どのブラウザでもショートカットCtrl + Jで開けるようです。

f:id:shego:20200915135621p:plain

この画面でファイル名を検索すれば、保存ファイルやダウンロード URL が得られます。 たとえその保存ファイルを削除してしまったとしても、履歴の URL をクリックすれば、再びダウンロードできます。

ところで私たちが欲しいのは、ファイル自体の URL ではなくて、それが置いてあった場所(リンクのあったベージ)の URL です。 ファイル自身への直 URL を知ってもあまり役に立ちません。

もし、Firefox を使っているならその「場所」を直接開くことができます。

Firefox のダウンロード履歴で、ファイル名の右クリックし、「ダウンロード元のページを開く」を実行すると、 そのファイルをダウンロードした場所のページが開きます。 残念ながら Chrome や Edge にこの機能はありません。

f:id:shego:20200915134230p:plain

FireFox が記録しているのは「参照元 URL 」、あるいは「リファラー」と呼ばれる情報で、ページを移動した時のリンク元のページの URL です。 ダウンロードファイルにとっては、そのファイルへのリンクが掲載されていたベージとなります。

ただし、この参照元 URL は必ず得られるというものではありません。

ダウンロード操作の仕方や、ページの作り、Webサイトのポリシーなどによって、参照元 URL が得られないことも多く、そうなると Firefox でもどうしようもありません。

 



 

ダウンロードファイルの付加情報から

macOS ではなんと、ダウンロードされたファイルから参照元 URL が得られるようです。

ファイルからファイル情報を開くと、その中にダウンロード URL と、もしあれば、参照元 URL も表示してくれるそうです。

Windows にも同じような機能はないのでしょうか。

調べると、どうもファイル情報としてダウンロードURLの記録があるにはあるようですが、それを表示する機能のほうが用意されていないようです。

以下のバッチでその記録の中身を確認することができます。

@echo off
set ADS=Zone.Identifier
for /f %%x in ('dir /r "%~f1" ^| findstr /l :%ADS%') do (
  start %windir%\system32\notepad.exe "%~f1:%ADS%"
  exit
)
echo Zone ID はありません
pause

このバッチにダウンロードファイルをドラッグ&ドロップすると、メモ帳に以下のような内容が表示されるはずです。

[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://www.shegolab.jp/entry/excel-generate-sequence
HostUrl=https://cdn-ak.f.st-hatena.com/images/fotolife/s/shego/20200516/20200516225517.png

これは、インターネットからダウンロードしたときにファイルに付加されるセキュリティ情報(Zone ID)です。 普段は意識しませんが、Windows はこれでセキュリティチェックをしていて、例えば Excel の「保護ビュー」にも関係してきます。 (確認したらメモ帳は保存せずに閉じてください)

その中にもし「ReferrerUrl=」で始まる行があれば、それに続く URL が参照元 URL になります。 「HostUrl=」のほうは、ファイルの直URLです。

ReferrerUrl の URL をコピーし、Web ブラウザのアドレスバーに入力すれば、そのファイルが掲載されている参照元のページが開かれるはずです。 (状況によって開かないこともあります)

どうせなら FireFox のように自動で開けたいですね。

以下のバッチは、ファイルの付加情報から参照元ページを自動で開くものです。

@echo off
set ADS=Zone.Identifier
for /f "tokens=1,* delims==" %%a in ('more ^< "%~f1:%ADS%"') do (
  if "%%a"=="ReferrerUrl" (start "" "%%b" & exit)
)
echo 参照元URLが見つかりませんでした。
pause

このバッチをシフトJISのバッチファイル(.bat)として保存します。 それに、ダウンロードされたファイルをドラッグ&ドロップすると、 付加情報から ReferrerUrl を探して、もしあれば、それを規定の Web ブラウザで開きます。

ReferrerUrl は必ずあるとは限りません。 例えば、Slack のスレッドからダウンロードしたファイルの付加情報には ReferrerURL がないので開けません。

【注意】 本記事に掲載のものに限らずバッチファイルは、メールやチャットに添付したりファイル共有やWebサイトなどで公開しないでください。 また入手したバッチファイルは、信頼性を確認できない限り、決してダブルクリックやドラッグ&ドロップをしないように注意してください。

【免責事項】 本記事に掲載されたプログラムやスクリプトの不具合や誤操作によって発生したいかなる損失や損害についても、筆者は責任を負いかねますのであらかじめご了承ください。

まとめ

ダウンロードファイルがあった場所を調べる方法を調べました。

Web ブラウザでダウンロードしたファイルなら、ダウンロード履歴(Firefox)やファイルの付加情報から参照元 URL を得られることがわかりました。

参照元 URL を使うと、ダウンロード元の Web ページを直接開くことができました。

あまりあてにはなりませんが、文書だけでなく、昔どこかで拾った画像ファイルの掲載元を思い出したいときなどにも役立つかもしれません。

ちなみにコミュニケーションサービスなどの専用アプリもいくつか調べてみましたが、ダウンロードで参照元 URL まで記録しているものは確認できませんでした。

なお、社内文書やデータのローッカルPCへの持ち出しは組織の情報セキュリティーポリシーに抵触しないよう注意してください。