9月5日は、ExcelやWordのファイルをダブルクリックしたときに、パソコンの中のアプリではなく、Googleのスプレッドシートやドキュメントとしてブラウザで開けるようにする仕組みを作った。
そもそものきっかけは、今使っているノートパソコンにOfficeのアプリが入っていないことだった。費用だけの問題であれば、無料でOffice形式のファイルを編集できるアプリも今はあるので、それほど大きな壁ではない。ただ、このノートパソコンはSSDの保存容量があまり大きくなく、Officeのような容量の大きいアプリをいくつも入れていくと、あっという間に空き容量を圧迫してしまう。その点、Googleのスプレッドシートやドキュメントは、基本的にローカルの容量をほとんど消費しない。だからこそ、ExcelやWordのファイルも標準でこちらの開き方にしてしまおうという発想に至った。意外と簡単そうに思えて、実際に手を動かしてみると、細かいところで悩む場面が多い作業だった。
🖱️ 「規定のアプリ」に登録するのが、まず一苦労
ファイルをダブルクリックしたときに何が起動するかは、Windowsの「規定のアプリ」という仕組みで決まっている。今回作ったのは、ブラウザを開いてGoogleのエディタでファイルを表示する小さなプログラムなのだが、これを新しい「開き方の候補」としてWindowsに認識させる必要がある。
ここで一つ壁があった。Windowsには、ユーザーが選んだ既定のアプリを他から勝手に書き換えられないようにする保護機能があり、プログラム側から「これからはこのアプリで開いてください」と自動的に設定することができない。そのため、自分のユーザー権限の範囲だけに開き方の候補を登録したうえで、最後は自分の手でWindowsの設定画面から「このアプリで開く」を選び直す、という一手間が必要になる。管理者権限を使って強引に書き換える方法もあるにはあるが、今回はそこまでせず、安全な範囲でできることをきちんと切り分けた。
🔍 どのファイルを開けばいいかを、探し当てる
もう一つの壁は、開き方の候補に登録したあとの話である。ダブルクリックされたのはパソコンの中の同期フォルダーにあるファイルだが、実際に開きたいのはGoogle Drive上にある同じファイルの方だ。そこで、ローカルのフォルダーとGoogle Drive上のフォルダーの対応関係をあらかじめ決めておき、Drive側を検索して同じ名前のファイルを見つけ、それをスプレッドシートなりドキュメントなりのエディタで開く、という流れにした。
ここで気をつけたのは、見つからない場合や、同じ名前のファイルが複数見つかってしまった場合に、適当な方を開いてしまわないことだ。判断に迷うときは無理に開かず、エラーとして知らせるようにしている。ファイルの中身を勝手にアップロードしたり変換したりすることもしない。あくまで「すでにGoogle Drive上にあるファイルを探して開くだけ」という、控えめな役割に絞った。
🔒 の〇き見しない、書き換えない
Googleのアカウント認証や、Drive上のファイルを検索する部分についても、必要最小限の権限だけを使うようにした。ファイルの中身を読み書きする権限は持たせず、ファイル名などの情報を確認できるだけの、いわば「目次だけ見られる」権限にとどめている。認証情報も、パソコンの中の自分専用の場所だけに保存し、共有のドライブや記録には残らないようにした。
一通り作ったあとは、自動テストを44件動かしてすべて成功することを確認し、そのうえで実際にExcelファイルをダブルクリックして、認証からGoogleスプレッドシートが開くところまでを自分の手で確かめた。ただし、確認できたのはExcelファイルだけで、WordやPowerPointのファイル、それにWindowsの設定画面からの手動選択については、まだ試せていない。
「ダブルクリックしたら別のアプリで開く」というだけなら簡単そうに聞こえるが、実際には、Windowsの安全な仕組みを迂回せずに候補として登録する方法や、どのファイルを開くべきかを間違えずに探し当てる方法など、地味に悩むところが多かった。残りの確認作業を含めて、もう少し様子を見ながら育てていきたい。


コメント