ミケガモのブログ/a>

コピーしたGoogleスプレッドシートファイル(.gsheet)のリンクが機能しない

Googleドキュメントについて熟知しているわけではありません。間違いがありましたらコメントしていただけると非常に助かります。またこの記事では、PCにインストールした「バックアップと同期」によってPC内のGoogleドライブフォルダに保存されるファイルのことを"ローカルファイル"と呼びます。

.gsheetファイル

.gsheetファイルとは、Googleスプレッドシートの各シートに1対1対応で紐づけられたファイルである。 .gsheetファイルは、スプレッドシートのデータそのものではない。中身はシートのURLであり(後述)、Googleが管理しているシートにアクセスするためだけのファイルである。

Googleドキュメントでスプレッドシートを作成すると、Googleドライブ内に同名の.gsheetファイルが生成される。生成される場所のデフォルト設定は、Googleドライブの一番上の階層である。

ブラウザ上でGoogleドライブもしくはGoogleスプレッドシートを起動し、.gsheetファイルをクリックすると、対応したシートを開くことができる。

.gsheetファイルは、Googleドライブ上の任意の場所に移動・コピーすることが可能である。.gsheetファイルを移動しても、シートとの紐づけが崩れることは無い。一方.gsheetファイルをコピーすると、そのスプレッドシートのコピーも自動で作成される。

Googleの「バックアップと同期」をPCにインストールしている場合、シートを作成するとPCのローカルGoogleドライブフォルダに.gsheetファイルが保存されていく。.gsheetファイルをローカルでダブルクリックすると、対応したシートをブラウザで開くことができる。ローカルの.gsheetファイルをテキストエディタで開くと、その中身が「対応したシートのリンクURL、シートID、オーナーのGmailアドレス」であることがわかる。 f:id:mikegamo:20190301194618p:plain ↑ ブラウザ上のコピー・移動。

今回の問題

.gsheetファイルをローカルでコピーすると、スプレッドシートのコピーを作成できる。しかし、ローカルでコピーした.gsheetファイルをダブルクリックしても、コピー元のスプレッドシートが開かれてしまう。

例: ローカルのA.gsheetをコピーし、B.gsheetにリネーム。 すると"B"というスプレッドシートが新規に作られ、シート"A"とは独立して編集できる。 しかし、ローカルのB.gsheetをダブルクリックするとシート"A"が開かれてしまう。 ブラウザ上でB.gsheetを開けば、シート"B"を開くことは可能。

この問題が起きるのは、ローカルでコピーしたときだけである(ブラウザ上でコピーすると発生しない)。

コピーした.gsheetファイルの中身をテキストエディタで開いてみると、中身のリンクURLやシートIDがコピー元の.gsheetファイルと全く同じであることが確認できる。どうやら、コピーしただけでは中身が書き換わらないということらしい。

解決方法

  1. リンクが機能していない.gsheetファイルを、ローカルのGoogleドライブ上で削除する。
  2. ブラウザ上のGoogleスプレッドシートにて下図のようなポップアップが出るので、「復元」を選択。
  3. 削除した.gsheetファイルが復元される。 f:id:mikegamo:20190301194638p:plain ↑ ファイル削除後に出るポップアップ。

このようにして復元された.gsheetファイルは、リンクが正常に機能する。 中身を確認すると、URLやIDが更新されている。