「スプレッドシートの共有リンクを変更したいのに、ドロップダウンがグレーアウトしていて操作できない……」「リンクの権限を”編集者”にしたはずなのに、相手には”閲覧のみ”と表示されてしまう……」こんな経験、ありませんか?
Googleスプレッドシートは無料で使えるうえに、複数人でリアルタイム編集できる便利なツールです。ところが、いざ共有リンクの設定を変更しようとすると、ボタンが押せなかったり、権限の選択肢が表示されなかったりして困ってしまうケースが後を絶ちません。しかもこのトラブル、原因がひとつではないのが厄介なところです。
この記事では、スプレッドシートの共有リンクが変更できない原因を7つのパターンに分類し、それぞれの具体的な解決手順をスクリーンショットの代わりに操作フローで丁寧に説明します。さらに、2026年2月時点で導入が進んでいるGoogle WorkspaceのGemini AI統合や共有ドライブの仕様変更など最新情報もカバーしています。初心者の方はもちろん、日常的にスプレッドシートを使いこなしている方にも「そういうことだったのか」と思っていただける内容を目指しました。
- 共有リンクの権限変更ができない原因7パターンと、それぞれの具体的な解決手順の完全網羅
- オーナー・編集者・閲覧者の権限の違いと、組織管理者ポリシーによる制限の見分け方
- 2026年最新のGoogle Workspace仕様変更やGemini連携を踏まえた、安全で効率的な共有リンク管理術
- そもそもスプレッドシートの共有リンクとは何か?
- 共有リンクが変更できない7つの原因と解決策
- 共有リンクの権限を正しく設定する具体的な手順
- 知っておくと差がつく共有リンクの上級テクニック
- 2026年最新のGoogle Workspace共有機能アップデート情報
- 共有リンクのセキュリティで見落としがちなポイント
- 情シス歴10年超の現場視点で語る「共有リンクトラブル」の本当の怖さ
- GASで共有リンクの問題を自動解決する実践コード集
- 現場でリアルに遭遇する「どうすればいいのかわからない」問題とその解決法
- プロが実践する共有リンク管理の運用ルール
- ぶっちゃけこうした方がいい!
- スプレッドシートの共有リンクが変更できないに関する疑問解決
- 今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
- まとめ
そもそもスプレッドシートの共有リンクとは何か?
解決策に入る前に、共有リンクの仕組みをきちんと押さえておきましょう。ここを曖昧にしたまま設定をいじると、余計に混乱してしまいます。
Googleスプレッドシートには、大きく分けて2つの共有方法があります。ひとつはメールアドレスを指定して特定のユーザーだけにアクセス権を与える方法、もうひとつはURLを発行して「リンクを知っている人全員」にアクセスを許可する方法です。後者が「共有リンク」と呼ばれるものですね。
共有リンクには「一般的なアクセス」という設定項目があり、ここで「制限付き」と「リンクを知っている全員」を切り替えられます。「制限付き」にすると、メールアドレスで追加されたユーザーだけがアクセスでき、URLだけ知っていても開けません。一方「リンクを知っている全員」にすると、URLさえあれば誰でもアクセスできるようになります。
さらに、リンクを知っている全員に対して「閲覧者」「閲覧者(コメント可)」「編集者」という3段階の権限を設定できます。ここが重要なポイントで、デフォルトは「閲覧者」です。つまり、リンクを送っただけでは相手は編集できません。「リンクを送ったから大丈夫」と思い込んでいるケースが非常に多く、これがトラブルの最大の原因になっています。
共有リンクが変更できない7つの原因と解決策
ここからが本題です。スプレッドシートの共有リンク設定を変更できない場合、考えられる原因は大きく7つあります。自分がどのパターンに当てはまるか、順番に確認してみてください。
原因1自分がオーナーでも編集者でもない
もっとも基本的な原因がこれです。スプレッドシートの共有リンク設定を変更できるのは、オーナー(所有者)か、オーナーから許可された編集者だけです。閲覧者やコメント可の閲覧者には、そもそも共有設定を変更するメニューが表示されません。
確認方法はシンプルです。スプレッドシートを開いて右上の「共有」ボタンをクリックしてください。開いたダイアログの中で、自分のアカウント名の横に「オーナー」や「編集者」と書いてあるかどうかを見ます。もし「閲覧者」と表示されていれば、権限が不足しているということです。
この場合の解決策は、オーナーに連絡して権限を「編集者」に変更してもらうことです。スプレッドシート上部に表示される「閲覧のみ」ボタンをクリックすると「アクセス権をリクエスト」できる画面が出てくるので、そこからリクエストを送ることもできます。
原因2オーナーが「編集者の権限変更と共有」を制限している
編集者であっても共有リンクを変更できないケースがあります。それは、オーナーが共有設定の歯車アイコン(設定)から「編集者が権限を変更して共有することを許可する」のチェックを外している場合です。
この設定がオフになっていると、編集者はデータの編集はできても、共有リンクの権限を変更したり、新しいユーザーを追加したりすることができません。ダイアログ上では「一般的なアクセス」のドロップダウンがグレーアウトして押せない状態になります。
解決策としては、オーナーにこの設定をオンに戻してもらう必要があります。具体的にはオーナーが「共有」ダイアログを開き、右上の歯車アイコンをクリックして「編集者が権限を変更して共有することを許可する」にチェックを入れてもらいましょう。
原因3Google Workspaceの管理者ポリシーで組織外共有が制限されている
会社や学校など、Google Workspaceの組織アカウントを使っている場合、管理者(IT部門)が組織外部への共有を制限していることがあります。この場合、個人の設定をいくら変更しようとしても、組織ポリシーが優先されるため操作できません。
具体的には、管理者がGoogle管理コンソールの「アプリ」→「Google Workspace」→「ドライブとドキュメント」→「共有設定」で外部共有を「オフ」にしている、もしくは「許可リストに登録されたドメイン」のみに制限しているパターンです。2026年2月にGoogleが更新した管理コンソールの設定画面では、許可リストドメインの互換性チェック機能が強化されており、ドメイン認証が未完了のWorkspaceアカウントはリストに追加できなくなっています。
自分が組織アカウントを使っているかどうかは、Googleアカウントのメールアドレスで判別できます。
@gmail.com
ではなく、
@会社名.com
のような独自ドメインであれば組織アカウントの可能性が高いです。この場合はIT管理者に相談して、共有ポリシーの変更を依頼するか、個人のGoogleアカウントで新しいスプレッドシートを作成してデータをコピーするという回避策があります。
原因4共有ドライブ(旧チームドライブ)の仕様による制限
意外と見落としがちなのが、共有ドライブに保存されたファイル特有の仕様です。共有ドライブでは、ファイルの所有権は個人ではなくドライブ自体に帰属します。そのため、通常の「マイドライブ」とは権限の仕組みが異なります。
共有ドライブでは、権限が「管理者」「コンテンツ管理者」「投稿者」「閲覧者(コメント可)」「閲覧者」の5段階に分かれています。共有リンクの設定を変更できるのは「管理者」ロールのユーザーのみです。コンテンツ管理者でもファイルの編集はできますが、共有設定の変更は許可されていません。
共有ドライブのファイルで共有リンクが変更できない場合は、共有ドライブの管理者に自分のロールを「管理者」に変更してもらうか、管理者に共有設定の変更を代行してもらいましょう。
原因5ログインしているGoogleアカウントが違う
複数のGoogleアカウントを使い分けている方に非常に多いトラブルです。スプレッドシートの編集権限は特定のGoogleアカウントに紐づけられています。たとえば、
tanaka@gmail.com
に編集権限が付与されているのに、ブラウザでは
tanaka.work@company.com
でログインしていると、閲覧しかできないということが起こります。
右上のプロフィールアイコンをクリックして、現在ログインしているアカウントを確認してください。複数アカウントでログインしている場合は、権限のあるアカウントに切り替えることで解決します。
原因6シークレットモードやプライベートブラウジングを使っている
シークレットモード(Chromeの場合は
Ctrl+Shift+N
で起動)では、通常モードのCookieやログイン情報が引き継がれません。つまり、Googleアカウントにログインしていない状態になっている可能性が高いのです。
「リンクを知っている全員」に設定されたスプレッドシートであれば閲覧はできますが、特定ユーザーとして共有されている場合はアクセス自体ができません。また、ログインしていても、シークレットモードでは共有設定の変更が正常に反映されないケースがまれに報告されています。
解決策は単純で、通常モードのブラウザに切り替えて、正しいGoogleアカウントでログインしてからスプレッドシートを開き直してください。
原因7ブラウザのキャッシュや拡張機能が干渉している
ここまでの原因に当てはまらない場合、ブラウザ側の問題も疑いましょう。古いキャッシュが残っていたり、広告ブロッカーなどの拡張機能がGoogleのスクリプトをブロックしていると、共有ダイアログの一部が正しく表示されないことがあります。
まずはブラウザのキャッシュをクリアしてみてください。Chromeなら
Ctrl+Shift+Delete
で「閲覧データの削除」画面が開きます。「キャッシュされた画像とファイル」にチェックを入れて削除し、ブラウザを再起動してからスプレッドシートを開き直しましょう。
それでも解決しない場合は、拡張機能をすべて無効にした状態で試してみてください。特に「uBlock Origin」や「Ghostery」などのプライバシー系拡張機能がGoogleの共有ダイアログと相性が悪いことが知られています。問題の拡張機能が特定できたら、そのスプレッドシートのURLだけ例外リストに登録することで、普段のブラウジングに影響を与えずに対処できます。
共有リンクの権限を正しく設定する具体的な手順
原因が解決したら、次は正しい手順で共有リンクを設定しましょう。ここでは、パソコン版とスマートフォン版の両方の操作手順を紹介します。
パソコンでの設定手順
- Googleスプレッドシートを開き、画面右上の「共有」ボタン(青色)をクリックします。
- 共有ダイアログが開いたら、下部にある「一般的なアクセス」セクションを確認します。デフォルトでは「制限付き」になっています。
- 「制限付き」のドロップダウンをクリックし、「リンクを知っている全員」を選択します。
- 右側に表示される権限のドロップダウンから「閲覧者」「閲覧者(コメント可)」「編集者」のいずれかを選びます。共同編集したい場合は必ず「編集者」を選択してください。
- 「リンクをコピー」をクリックしてURLを取得し、チャットやメールで相手に送信します。
- 最後に「完了」をクリックして設定を保存します。
ここで注意したいのが、ブラウザのアドレスバーからURLをコピーするのではなく、必ず「リンクをコピー」ボタンを使うということです。アドレスバーのURLには個人のセッション情報が含まれている場合があり、相手が正しくアクセスできないことがあります。
スマートフォンでの設定手順
スマートフォンの場合は、Googleスプレッドシートアプリを使います。アプリを起動してファイルを開いたら、右上の三点メニュー(「⋮」)をタップし、「共有とエクスポート」から「共有」を選びます。あとはパソコン版と同じように、アクセス範囲と権限を設定してリンクをコピーすればOKです。Androidの場合もiPhoneの場合も、基本的な操作の流れは変わりません。
知っておくと差がつく共有リンクの上級テクニック
基本操作ができるようになったら、もう一歩進んだ活用法も押さえておきましょう。ここでは、実務で役立つ3つのテクニックを紹介します。
コピー用URLで相手に「おもてなし共有」をする
テンプレートとしてスプレッドシートを配布したいとき、通常の共有リンクでは相手がそのまま元データを編集してしまうリスクがあります。そんなときは、URLの末尾を少し変えるだけで「コピー画面」から開いてもらう方法が便利です。
やり方はとても簡単で、スプレッドシートURLの末尾にある
/edit
以降を削除して、代わりに
/copy
と書き換えるだけです。このURLを相手に送ると、相手の画面には「コピーを作成しますか?」というダイアログが表示され、自分のGoogleドライブに複製を保存してから編集を始められます。元のファイルは一切変更されないので安心です。
ただし、この方法を使うには、元のスプレッドシートの共有設定を「リンクを知っている全員」が「閲覧者」以上でアクセスできる状態にしておく必要があります。「制限付き」のままだとコピー画面が表示されず、アクセスリクエスト画面になってしまうので注意してください。
シートの保護と権限設定を組み合わせる
「編集者として共有したいけれど、特定のシートやセルだけは触らせたくない」という場面も多いでしょう。その場合は、シートの保護機能を使います。
操作は、保護したいシートタブを右クリックして「シートを保護」を選択するだけです。右側にパネルが開くので「権限を設定」をクリックし、編集を許可するユーザーを指定します。特定のセル範囲だけを保護したい場合は、該当セルを選択した状態で「データ」メニューから「シートと範囲を保護」を選んでください。
この保護機能は共有リンクの権限設定とは独立して動作するため、「リンクを知っている全員を編集者にしつつ、重要な計算式が入っているセルだけは保護する」という柔軟な運用が可能です。
Googleグループを活用して共有管理を効率化する
プロジェクトメンバーが10人、20人と増えてくると、個別にメールアドレスを追加するのは現実的ではありません。そんなときに便利なのがGoogleグループです。
Googleグループを作成してメンバーを登録しておけば、グループのメールアドレスひとつで全員にアクセス権を付与できます。メンバーの異動や退職があっても、グループから削除するだけで、すべてのスプレッドシートへのアクセス権が自動的に失効します。スプレッドシートごとに個別の共有設定を変更する手間が省けるため、大規模なチーム運営には欠かせないテクニックです。
2026年最新のGoogle Workspace共有機能アップデート情報
Googleは2026年に入ってからもWorkspaceの機能アップデートを精力的に行っています。共有リンクに関連する直近の変更点をまとめておきましょう。
ポリシー可視化機能の導入
2026年のアップデートとして注目すべきは、ドキュメントに適用されているセキュリティポリシーを視覚的に表示する機能が追加された点です。Google Docs、Sheets、Slides、Driveの各ファイルに、組織のセキュリティ制限がかかっている場合、それがアイコンやバナーで明示されるようになりました。これにより「なぜ共有リンクが変更できないのか」が、ユーザー側からも一目でわかるようになっています。
GeminiのAI統合による共有支援
2026年2月現在、Google WorkspaceにはAIアシスタントGeminiがさらに深く統合されています。スプレッドシートのサイドパネルから自然言語で質問できるようになっており、たとえば「このファイルの共有設定を確認して」と入力すれば、現在のアクセス状況を要約してくれます。権限管理の効率化が期待できる機能です。
Connected Sheets for BigQueryの予測機能
2026年2月のGoogleWorkspace Updatesで発表された最新機能として、Connected SheetsでBigQuery MLとTimesFMモデルを使ったデータ予測が可能になりました。直接共有リンクに関わる機能ではありませんが、スプレッドシートで高度なデータ分析を行う機会が増えると、適切な共有権限の管理がこれまで以上に重要になります。
共有リンクのセキュリティで見落としがちなポイント
共有リンクは便利な反面、セキュリティ上のリスクも伴います。ここでは、多くの人が見落としがちなセキュリティの注意点を解説します。
「リンクを知っている全員」はURLが漏れたら誰でもアクセスできる
この設定は文字どおり、URLさえ知っていれば世界中の誰でもアクセスできるということを意味します。チャットで送ったURLが転送されたり、SNSに誤って投稿されたりすると、意図しない第三者にデータが見られてしまうリスクがあります。機密情報や個人情報を含むスプレッドシートでは、リンク共有ではなくメールアドレスによる個別共有を使いましょう。
閲覧者でもコピーとダウンロードはできる
閲覧者に設定しておけば安全だと思いがちですが、デフォルトの状態では閲覧者にもコピー・ダウンロード・印刷の権限が与えられています。つまり、相手は自分のGoogleドライブにファイルをコピーして自由に編集できてしまうのです。
これを防ぐには、共有ダイアログの歯車アイコン(設定)をクリックし、「閲覧者と閲覧者(コメント可)にダウンロード、印刷、コピーの選択肢を表示する」のチェックを外す必要があります。この設定はデフォルトでオンになっているため、意識的に変更しないと見落としてしまいます。
共有リンク自体は変更(再発行)できない仕様
実は、Googleスプレッドシートには共有リンクのURL自体を変更する機能がありません。一度発行されたURLは、そのファイルが存在する限り同じです。「古いリンクを無効にして新しいリンクを発行したい」という場合は、共有設定を「制限付き」に戻してリンクアクセスを無効化したうえで、ファイルをコピーして新しいスプレッドシートとして再作成するしかありません。
この仕様は、Google公式のヘルプでも明記されています。リンクの取り消しは「全員に対して一括」でしかできず、特定の個人だけリンクアクセスを剥奪するということもできません。だからこそ、最初の段階で適切な共有方法を選ぶことが重要なのです。
情シス歴10年超の現場視点で語る「共有リンクトラブル」の本当の怖さ
ここからは、企業の情報システム部門で10年以上にわたってGoogle Workspaceの運用管理に携わってきた視点から、公式ヘルプや他のサイトではまず書かれない「現場のリアル」をお伝えします。共有リンクが変更できないという問題は、単なる操作ミスの話ではありません。放置すると情報漏洩インシデントに直結する、組織にとって非常にシビアな問題なのです。
たとえば、過去に実際あったケースを紹介します。ある部署の担当者が「リンクを知っている全員が編集者」の設定でスプレッドシートを共有しました。当初はプロジェクトメンバー5人だけに送ったつもりだったのですが、メンバーの一人がそのURLをSlackのパブリックチャンネルに貼り付けてしまい、社内の数百人がアクセスできる状態になりました。さらにそのSlackチャンネルにはゲストアカウントの外部パートナーも参加しており、結果的に社外にまで顧客リストが閲覧可能な状態で3週間も放置されていたのです。
この手の事故は、情シス部門にいると年に何件も報告が上がってきます。恐ろしいのは、当事者が気づかないまま何日も何週間も経過することです。共有リンクはファイルのアクティビティダッシュボードを見ないと誰がアクセスしたか把握できません。しかもアクティビティダッシュボードは「リンクを知っている全員」でアクセスした匿名ユーザーの詳細までは追えません。つまり、一度リンクが広まってしまったら、誰が見たのかを完全に特定することは事実上不可能なのです。
情シスが本当に困る「共有リンクあるある」ベスト5
現場で何度も遭遇してきた、頭を抱えるシチュエーションを共有します。これはどの組織でも起きうる問題ばかりです。
1つ目は、退職者のファイルに「リンクを知っている全員」が残ったままになっているケースです。退職時にアカウントを停止しても、その人が作ったスプレッドシートのリンク共有設定は変わりません。オーナー権限を移譲し忘れると、管理者でも共有設定を変更できなくなることがあります。
2つ目は、部門異動のタイミングで権限が残ったままになることです。Googleグループで管理していれば自動的に外れますが、個別のメールアドレスで共有している場合は手動で一つ一つ外す必要があります。異動者が100ファイル以上に編集者として残っているケースも珍しくありません。
3つ目は、管理者ポリシーの変更が既存ファイルに遡及しないことです。組織外共有を後からオフにしても、すでに「リンクを知っている全員」で共有済みのファイルは、設定がそのまま残ります。新規ファイルには適用されますが、過去のファイルは個別に見直さないと穴が空いたままです。
4つ目は、共有ドライブ内のファイルでオーナーシップという概念がないことに気づかず混乱するケースです。マイドライブでは「オーナーの移譲」で問題を解決できますが、共有ドライブではファイルのオーナーはドライブ自体です。個人の権限を変えるには共有ドライブの管理者ロールが必要で、ファイル単位のオーナー移譲はできません。
5つ目は、Google Formsとスプレッドシートの連携時に共有設定がずれる問題です。Formsの回答を自動でスプレッドシートに書き出している場合、Formsの共有設定とスプレッドシートの共有設定は完全に独立しています。Formsは誰でも回答できるように公開しているのに、回答データのスプレッドシートも「リンクを知っている全員」になっていた、というケースは実際に何度も見てきました。
GASで共有リンクの問題を自動解決する実践コード集
ここからは、Google Apps Script(GAS)を使って共有リンクまわりの管理を自動化するコードを紹介します。手作業では追いきれない共有設定の管理を、スクリプトの力で効率化しましょう。GASはスプレッドシートの「拡張機能」→「Apps Script」から誰でも無料で使えます。
コード1スプレッドシートの現在の共有状況を一覧表示するスクリプト
まずは「今、誰がこのファイルにアクセスできるのか」を把握するためのスクリプトです。共有リンクが変更できないと悩んでいる場合、そもそも現在どんな設定になっているのかを正確に把握することが第一歩です。
function auditSharingStatus() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var file = DriveApp.getFileById(ss.getId());
// 共有アクセスの種類を取得
var access = file.getSharingAccess();
var permission = file.getSharingPermission();
// 編集者一覧を取得
var editors = file.getEditors();
var editorEmails = editors.map(function(editor) {
return editor.getEmail();
});
// 閲覧者一覧を取得
var viewers = file.getViewers();
var viewerEmails = viewers.map(function(viewer) {
return viewer.getEmail();
});
// 結果を新しいシートに書き出す
var reportSheet = ss.getSheetByName('共有状況レポート');
if (!reportSheet) {
reportSheet = ss.insertSheet('共有状況レポート');
}
reportSheet.clear();
reportSheet.getRange('A1').setValue('項目');
reportSheet.getRange('B1').setValue('内容');
reportSheet.getRange('A2').setValue('リンク共有の範囲');
reportSheet.getRange('B2').setValue(access.toString());
reportSheet.getRange('A3').setValue('リンク共有の権限');
reportSheet.getRange('B3').setValue(permission.toString());
reportSheet.getRange('A4').setValue('編集者一覧');
reportSheet.getRange('B4').setValue(editorEmails.join(', '));
reportSheet.getRange('A5').setValue('閲覧者一覧');
reportSheet.getRange('B5').setValue(viewerEmails.join(', '));
reportSheet.getRange('A6').setValue('レポート作成日時');
reportSheet.getRange('B6').setValue(new Date());
SpreadsheetApp.getUi().alert('共有状況レポートを作成しました。「共有状況レポート」シートを確認してください。');
}
このスクリプトを実行すると、「共有状況レポート」という新しいシートが自動的に作られ、リンク共有の範囲(ANYONE_WITH_LINKやPRIVATEなど)、権限レベル、編集者と閲覧者のメールアドレスが一覧表示されます。共有リンクの設定が想定どおりかを確認する最初のステップとして活用してください。
コード2指定日時に自動で共有リンクを無効化するスクリプト
Googleスプレッドシートの標準機能では、共有リンクに有効期限を設定することができません。しかしGASを使えば、指定した日時に自動でリンク共有をオフにすることが可能です。プロジェクト終了後にリンクを閉じ忘れる事故を防げます。
function setAutoExpire() {
// 有効期限を設定(YYYY, MM-1, DD, HH, MM の形式)
// 例2026年3月31日 18:00に期限切れ
var expireDate = new Date(2026, 2, 31, 18, 0);
// 既存のトリガーを削除(重複防止)
var triggers = ScriptApp.getProjectTriggers();
triggers.forEach(function(trigger) {
if (trigger.getHandlerFunction() === 'expireSharing') {
ScriptApp.deleteTrigger(trigger);
}
});
// 新しいトリガーを作成
ScriptApp.newTrigger('expireSharing')
.timeBased()
.at(expireDate)
.create();
SpreadsheetApp.getUi().alert(
'共有リンクの自動無効化を設定しました。\n' +
'期限: ' + expireDate.toLocaleString('ja-JP')
);
}
function expireSharing() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var file = DriveApp.getFileById(ss.getId());
// リンク共有を無効化(制限付きに変更)
file.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.NONE);
file.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.NONE);
// オーナーにメール通知
var owner = file.getOwner();
if (owner) {
MailApp.sendEmail(
owner.getEmail(),
'【自動通知】スプレッドシートの共有リンクが無効化されました',
'ファイル名: ' + ss.getName() + '\n' +
'URL: ' + ss.getUrl() + '\n' +
'上記ファイルの共有リンクが自動的に無効化されました。\n' +
'再度共有が必要な場合は、手動で設定を変更してください。'
);
}
}
使い方は、まず
setAutoExpire
関数内の
expireDate
を希望の日時に書き換えてから実行します。すると指定日時にトリガーが発火し、
expireSharing
関数がリンク共有を自動で無効化してくれます。さらにオーナーにメールで通知が届くので、「いつの間にかリンクが切れていた」という混乱も防げます。
コード3フォルダ内の全ファイルの共有状況を一括監査するスクリプト
情シス担当者にとって最も重宝するのがこのスクリプトです。指定したGoogleドライブフォルダ内にあるすべてのファイルの共有状況をスプレッドシートに一覧出力します。「リンクを知っている全員」になっているファイルがないか一発でチェックできます。
function auditFolderSharing() {
var folderId = 'ここにフォルダIDを入力';
var folder = DriveApp.getFolderById(folderId);
var files = folder.getFiles();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('フォルダ監査結果');
if (!sheet) {
sheet = ss.insertSheet('フォルダ監査結果');
}
sheet.clear();
// ヘッダー行を設定
sheet.getRange('A1:G1').setValues[[
'ファイル名', '共有範囲', '共有権限',
'編集者数', '閲覧者数', 'オーナー', '要対応'
]]);
var row = 2;
while (files.hasNext()) {
var file = files.next();
var access = file.getSharingAccess().toString();
var permission = file.getSharingPermission().toString();
var editorCount = file.getEditors().length;
var viewerCount = file.getViewers().length;
var owner = file.getOwner() ? file.getOwner().getEmail() : '不明';
// リンク共有が有効かつ編集権限がある場合に警告
var needsAction = '';
if (access === 'ANYONE_WITH_LINK' && permission === 'EDIT') {
needsAction = '危険リンク共有で編集可能';
} else if (access === 'ANYONE_WITH_LINK') {
needsAction = '注意リンク共有が有効';
} else if (access === 'ANYONE') {
needsAction = '危険完全公開状態';
}
sheet.getRange(row, 1, 1, 7).setValues[[
file.getName(), access, permission,
editorCount, viewerCount, owner, needsAction
]]);
row++;
}
// 警告行をハイライト
var dataRange = sheet.getRange(2, 7, row - 2, 1);
var values = dataRange.getValues();
for (var i = 0; i < values.length; i++) {
if (values.indexOf('危険') !== -1) {
sheet.getRange(i + 2, 1, 1, 7).setBackground('#ffcccc');
} else if (values.indexOf('注意') !== -1) {
sheet.getRange(i + 2, 1, 1, 7).setBackground('#fff2cc');
}
}
SpreadsheetApp.getUi().alert(
'監査完了: ' + (row - 2) + '件のファイルを検査しました。\n' +
'「フォルダ監査結果」シートを確認してください。'
);
}
フォルダIDは、Googleドライブでフォルダを開いたときのURLの末尾部分(
folders/
の後ろの英数字)をコピーして貼り付けてください。実行すると「フォルダ監査結果」シートにファイル一覧が出力され、リンク共有で編集可能な危険な状態のファイルは赤色で、リンク共有が有効なファイルは黄色でハイライトされます。月に一度このスクリプトを実行するだけで、共有設定の穴をかなり防げます。
コード4退職者や異動者の権限を一括削除するスクリプト
特定のメールアドレスのユーザーを、指定フォルダ内の全ファイルから一括で削除するスクリプトです。退職時や部署異動時に数十ファイル、数百ファイルの権限を手作業で外す苦痛から解放されます。
function removeUserFromAllFiles() {
var targetEmail = 'taisyoku-sha@example.com'; // 削除したいユーザーのメールアドレス
var folderId = 'ここにフォルダIDを入力';
var folder = DriveApp.getFolderById(folderId);
var files = folder.getFiles();
var removedCount = 0;
var errorFiles = ;
while (files.hasNext()) {
var file = files.next();
try {
// 編集者として登録されていたら削除
var editors = file.getEditors();
editors.forEach(function(editor) {
if (editor.getEmail().toLowerCase() === targetEmail.toLowerCase()) {
file.removeEditor(editor);
removedCount++;
}
});
// 閲覧者として登録されていたら削除
var viewers = file.getViewers();
viewers.forEach(function(viewer) {
if (viewer.getEmail().toLowerCase() === targetEmail.toLowerCase()) {
file.removeViewer(viewer);
removedCount++;
}
});
} catch (e) {
errorFiles.push(file.getName() + ' (' + e.message + ')');
}
}
var message = targetEmail + ' を ' + removedCount + ' 件のファイルから削除しました。';
if (errorFiles.length > 0) {
message += '\n\nエラーが発生したファイル:\n' + errorFiles.join('\n');
}
SpreadsheetApp.getUi().alert(message);
}
注意点として、このスクリプトはフォルダ直下のファイルのみを処理します。サブフォルダも含めて再帰的に処理したい場合は、フォルダ内のサブフォルダを取得して同じ処理を繰り返すようにコードを拡張してください。また、共有ドライブのファイルに対しては
removeEditor
や
removeViewer
が動作しない場合があるので、その場合はDrive Advanced Service(Drive API v3)を使う必要があります。
現場でリアルに遭遇する「どうすればいいのかわからない」問題とその解決法
ここでは、マニュアルやヘルプ記事には載っていないけれど、実際の業務で「これどうすればいいの?」と聞かれることが多い問題を取り上げます。すべて実体験ベースです。
問題1オーナーが退職してファイルの共有設定を誰も変更できない
これは情シス部門に最も多く持ち込まれる相談のひとつです。オーナーのアカウントが停止済みの場合、通常の操作では共有設定を変更できません。
解決策は、Google Workspace管理者がデータ移行機能を使うことです。管理コンソールの「アプリ」→「Google Workspace」→「ドライブとドキュメント」から、退職者のファイルオーナーシップを別のアクティブユーザーに一括移譲できます。具体的には、管理コンソールの「ディレクトリ」→「ユーザー」で退職者アカウントを検索し、「データの移行」を実行します。移行先のユーザーを指定すれば、そのユーザーが新しいオーナーとなり共有設定を自由に変更できるようになります。
ここで重要なのが、退職者のアカウントを完全に削除する前に必ずデータ移行を行うことです。アカウントを削除してしまうと、データ移行自体ができなくなります。多くの組織では退職後30日間はアカウントを停止状態で保持し、その間にデータ移行を完了させるルールを設けています。
問題2「編集者」で共有したのに相手が「権限をリクエストしてください」と表示される
メールアドレスで編集者として追加したのに、相手がリンクを開くと権限エラーが出る。これ、実は相手がGoogleアカウントにログインしていないか、別のアカウントでログインしているパターンが9割です。
相手に確認してもらうべきことは3つあります。まず、ブラウザの右上にあるプロフィールアイコンをクリックして、共有されたメールアドレスと一致するアカウントでログインしているかを確認すること。次に、複数アカウントでログインしている場合は一度すべてログアウトしてから、権限のあるアカウントだけで再ログインすること。最後に、シークレットモードやInPrivateモードではないことを確認することです。
もうひとつ意外なパターンとして、相手のメールアドレスがGoogleアカウントに紐づいていないケースがあります。たとえば
tanaka@kaisha.co.jp
というメールアドレスに共有しても、そのアドレスがGoogleアカウントとして登録されていなければ、ログインしようがありません。この場合、相手にそのメールアドレスでGoogleアカウントを作成してもらうか、リンク共有(リンクを知っている全員)に切り替えるかの二択になります。
問題3保護したシートが解除できない(自分がオーナーなのに)
スプレッドシートのシート保護を設定した後、保護の解除ボタンが見当たらない、あるいは「権限がありません」と表示されるケースです。これは保護を設定したときと別のアカウントでログインしている可能性が高いです。
保護の解除手順は、「データ」メニュー→「シートと範囲を保護」を選択し、右側に表示されるパネルで該当の保護項目を選んで「ゴミ箱アイコン」をクリックすることです。もしゴミ箱アイコンが表示されない場合は、保護を設定した本人かオーナーのアカウントでログインし直す必要があります。
なお、GASでシート保護を設定した場合は、GASからでないと解除できないことがあります。その場合は以下のスクリプトで全保護を一覧表示し、不要なものを削除できます。
function listAndRemoveProtections() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var protections = ss.getProtections(SpreadsheetApp.ProtectionType.SHEET);
var rangeProtections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE);
var allProtections = protections.concat(rangeProtections);
if (allProtections.length === 0) {
SpreadsheetApp.getUi().alert('保護されたシートや範囲はありません。');
return;
}
var message = '現在の保護設定一覧:\n\n';
allProtections.forEach(function(protection, index) {
var desc = protection.getDescription() || '説明なし';
var range = protection.getRange();
var sheetName = range.getSheet().getName();
message += (index + 1) + '. ' + sheetName + ' - ' + desc +
' (' + range.getA1Notation() + ')\n';
});
var ui = SpreadsheetApp.getUi();
var response = ui.alert(
'保護設定の確認',
message + '\nすべての保護を解除しますか?',
ui.ButtonSet.YES_NO
);
if (response === ui.Button.YES) {
allProtections.forEach(function(protection) {
protection.remove();
});
ui.alert('すべての保護を解除しました。');
}
}
問題4スプレッドシートのURLを共有したがアドレスバーのURLとリンクコピーのURLが違う
これは意外と知らない人が多いのですが、ブラウザのアドレスバーに表示されるURLと、「共有」ダイアログの「リンクをコピー」で取得されるURLは微妙に異なることがあります。アドレスバーのURLには
/edit#gid=0
のようにシートIDやフラグメント情報が含まれていますが、コピーされるリンクは
/edit?usp=sharing
のようなクエリパラメータ付きのURLです。
問題は、アドレスバーからコピーしたURLでは正しく共有設定が反映されないことがある点です。特に、特定のシートタブを直接開くURLをコピーすると、相手の環境によってはエラーが出ることがあります。共有する際は必ず「リンクをコピー」ボタンを使ってください。
逆に、特定のシートタブやセルを指定して共有したい場合は、URLを意図的に加工する方法もあります。たとえば、URLの末尾にある
#gid=
の後の数字がシートIDです。シートIDは各タブに固有の番号で、そのシートタブを直接開くURLとして使えます。さらに
&range=A1
のようにパラメータを追加すれば、特定のセルにフォーカスした状態で開いてもらうことも可能です。ただし、これらはあくまで「どこを最初に表示するか」の指定であり、権限の制御とは無関係です。
問題5「編集者が権限を変更できる」設定をオフにしたいが他の編集者に影響が出ないか不安
結論から言うと、影響は出ます。この設定をオフにすると、オーナー以外のすべての編集者が共有設定の変更と新規ユーザーの追加ができなくなります。個別に「この人だけは変更できるようにしたい」という細かい制御はできません。
現実的な運用としては、オーナーを部門の代表アカウント(グループ管理用のアカウント)にしておくのがベストプラクティスです。個人アカウントがオーナーだと、その人が休みのときに共有設定を変更できなくなります。組織アカウントを使っている場合は、共有管理用のGoogleグループを作成し、そのグループのメンバーがオーナー権限を代行できるようにしておくと、属人化を防げます。
プロが実践する共有リンク管理の運用ルール
トラブルを未然に防ぐには、技術的な対処だけでなく運用ルールの整備が不可欠です。多くの企業で導入されている実績のあるルールを紹介します。
「リンク共有は原則禁止、メールアドレス共有がデフォルト」を徹底する
リンク共有は確かに便利ですが、URLが一度でも漏洩するとリスクが跳ね上がります。情シス部門としてまず推奨したいのは、社内の共有ルールとして「リンクを知っている全員」は原則禁止にすることです。どうしてもリンク共有が必要な場合(大人数への一時的な公開など)は、上長の承認を経てから設定し、必ず有効期限を設けるというワークフローを組みましょう。
Google Workspace管理者であれば、管理コンソールから組織単位でリンク共有自体を無効化できます。「アプリ」→「Google Workspace」→「ドライブとドキュメント」→「共有設定」→「共有オプション」で、「組織外のユーザーとの共有」をオフにするだけです。これだけで、ユーザーがうっかり「リンクを知っている全員」に変更してしまう事故を根本的に防げます。
四半期ごとの共有設定棚卸しを習慣化する
先ほど紹介したGASのフォルダ監査スクリプトを活用して、少なくとも四半期(3ヶ月)に一度は主要フォルダの共有状況をチェックしましょう。監査の結果、不要な共有が見つかったら即座に権限を削除するのが鉄則です。
さらに効率化したい場合は、GASのトリガー機能で毎月自動実行する仕組みを組むこともできます。以下のようにトリガーを設定すれば、毎月1日に自動で監査が実行され、結果がメールで届きます。
function setupMonthlyAudit() {
// 既存のトリガーを削除
ScriptApp.getProjectTriggers().forEach(function(trigger) {
if (trigger.getHandlerFunction() === 'monthlyAuditAndNotify') {
ScriptApp.deleteTrigger(trigger);
}
});
// 毎月1日に実行するトリガーを作成
ScriptApp.newTrigger('monthlyAuditAndNotify')
.timeBased()
.onMonthDay(1)
.atHour(9)
.create();
SpreadsheetApp.getUi().alert('毎月1日9時に共有監査を自動実行するトリガーを設定しました。');
}
function monthlyAuditAndNotify() {
var folderId = 'ここにフォルダIDを入力';
var folder = DriveApp.getFolderById(folderId);
var files = folder.getFiles();
var warnings = ;
while (files.hasNext()) {
var file = files.next();
var access = file.getSharingAccess().toString();
var permission = file.getSharingPermission().toString();
if (access === 'ANYONE_WITH_LINK' || access === 'ANYONE') {
warnings.push({
name: file.getName(),
url: file.getUrl(),
access: access,
permission: permission
});
}
}
if (warnings.length > 0) {
var body = '以下のファイルでリンク共有が有効になっています。\n' +
'確認のうえ、不要であれば共有設定を「制限付き」に変更してください。\n\n';
warnings.forEach(function(w) {
body += '■ ' + w.name + '\n' +
' 共有範囲: ' + w.access + ' / 権限: ' + w.permission + '\n' +
' URL: ' + w.url + '\n\n';
});
MailApp.sendEmail(
Session.getActiveUser().getEmail(),
'【月次共有監査】リンク共有が有効なファイルが ' + warnings.length + ' 件あります',
body
);
}
}
共有ドライブのフォルダ構成で権限を階層管理する
共有ドライブを使っている組織では、フォルダ構成自体を権限管理の仕組みとして設計するのが効果的です。たとえば、「01_全社公開」「02_部門内限定」「03_マネージャー以上」のようにフォルダを分け、それぞれに適切な権限を設定します。ファイルはフォルダの権限を継承するので、正しいフォルダに入れるだけで自動的に適切な権限が設定されます。
ここで注意すべきは、共有ドライブではフォルダ内のファイルは親フォルダの権限を常に継承するという仕様です。マイドライブとは異なり、共有ドライブではファイル個別に親フォルダより広い権限を設定することはできません。この仕様を理解していないと「ファイルの共有設定を変更したのに反映されない」という問題に遭遇します。
ぶっちゃけこうした方がいい!
ここまで共有リンクの問題について技術的な解決策やGASコード、運用ルールまで幅広く解説してきましたが、正直なところを言いますね。
共有リンクの権限トラブルの根本原因の8割は「リンク共有を使っていること自体」です。ぶっちゃけ、リンク共有って便利なようで一番トラブルを生む共有方法なんですよ。URLが一人歩きするリスクがある、誰がアクセスしたか追えない、特定の人だけアクセスを剥奪できない、URL自体を変更できない。冷静に考えると、デメリットだらけです。
個人的な結論としては、メールアドレスでの個別共有を基本にして、リンク共有は「テンプレート配布」のようなどうでもいいファイルだけに限定するのが一番楽だし効率的です。「メールアドレスだと面倒くさい」と思うかもしれませんが、一度Googleグループを作ってしまえば、グループのアドレス一つで何十人にも一発で共有できます。しかもメンバーの入れ替えもグループ側で管理できるから、スプレッドシートの共有設定を触る必要すらなくなります。
そしてGASの活用は本当におすすめです。情シス10年やってきて痛感しているのは、人間は必ず設定を忘れる、必ず操作を間違えるということです。だから「共有リンクを期限付きにする」「定期的に監査する」「退職者の権限を一括削除する」といった作業は、人間にやらせずにスクリプトに任せてしまうのが最善策です。一度セットアップすれば、あとは毎月自動で回るんですから。
最後にもうひとつ。共有リンクが変更できなくて困っているあなたがオーナーでないなら、まず共有設定をいじろうとすること自体を一旦やめてください。オーナーに連絡して変更してもらうのが最短ルートです。自分でなんとかしようとして設定を触りまくった結果、状況をさらに複雑にしてしまうケースを山ほど見てきました。権限がない操作は素直にオーナーに任せる。これが、ぶっちゃけ一番確実で一番速い解決方法です。
スプレッドシートの共有リンクが変更できないに関する疑問解決
共有リンクの権限を変更しようとしてもドロップダウンが押せないのはなぜ?
もっとも考えられるのは、あなたがそのファイルのオーナーでも編集者でもないケースです。閲覧者の権限では共有設定を変更するメニュー自体が操作不能になります。もうひとつの可能性は、オーナーが「編集者が権限を変更して共有することを許可する」の設定をオフにしているケースです。さらに、Google Workspaceの組織アカウントの場合は管理者ポリシーによる制限も考えられます。まずは自分の権限を確認し、それでも解決しない場合はオーナーやIT管理者に問い合わせましょう。
自分がオーナーなのに「リンクを知っている全員」に変更できないのはなぜ?
Google Workspaceの組織アカウントで、管理者が外部共有を制限している場合にこの現象が起きます。組織の管理コンソールで「ドライブとドキュメント」の共有設定が「オフ」または「許可リストドメインのみ」になっていると、オーナーであっても「リンクを知っている全員」への変更ができません。IT管理者に共有ポリシーの確認を依頼してください。個人の
@gmail.com
アカウントでこの問題が発生する場合は、ブラウザのキャッシュクリアや別ブラウザでの確認を試してみましょう。
「編集者」で共有したはずなのに相手が編集できないと言われた場合は?
いくつかの原因が考えられます。まず、相手が権限を付与したのとは別のGoogleアカウントでログインしている可能性を確認してください。次に、スプレッドシート内で「シートと範囲の保護」が設定されていないかも確認しましょう。保護されたシートやセルは、編集者であっても変更できません。また、リンク共有の権限が「編集者」になっていても、メールアドレスで個別に「閲覧者」として追加されている場合は、個別設定のほうが優先されるケースがあるため注意が必要です。
スマートフォンから共有リンクの権限を変更する方法は?
Googleスプレッドシートアプリを開き、対象ファイルの右上にある三点メニュー(「⋮」)をタップして「共有とエクスポート」→「共有」を選択します。そこから「一般的なアクセス」の設定を変更できます。ただし、パソコン版に比べるとアプリ版は設定項目の表示が簡略化されている部分があるため、細かい権限変更が必要な場合はパソコンから操作することをおすすめします。
共有リンクのURLを新しく変更することはできる?
残念ながら、Googleスプレッドシートでは共有リンクのURL自体を変更することはできません。URLはファイル固有のIDに基づいて自動生成されるため、同じファイルである限りURLは変わりません。どうしても別のURLにしたい場合は、ファイルをコピーして新規ファイルとして作り直すか、元のファイルの共有を「制限付き」に戻して旧リンクを無効化し、新しいファイルで改めてリンクを発行するという方法を取る必要があります。
今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」
あなたはこんな経験はありませんか?
✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦
平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。
LINEでメッセージを送れば即時解決!
すでに多くの方が私の公式LINEからお悩みを解決しています。
最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。
誰でも無料で使えますので、安心して使えます。
問題は先のばしにするほど深刻化します。
小さなエラーがデータ消失や重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。
あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。
ぜひ、あなたの悩みを私に解決させてください。
まとめ
スプレッドシートの共有リンクが変更できないトラブルは、権限不足、オーナーによる制限設定、組織ポリシー、共有ドライブの仕様、ログインアカウントの不一致、シークレットモード、ブラウザのキャッシュ問題のいずれかが原因であることがほとんどです。まずはこの7パターンを順番にチェックすれば、大半のケースは解決できます。
権限の種類(オーナー・編集者・閲覧者コメント可・閲覧者)の違いを正しく理解し、共有する前に「誰に」「どの権限を」「どの方法で」渡すかを考える習慣を身につけましょう。特にビジネスシーンでは、安易なリンク共有が情報漏洩につながるリスクもあるため、メールアドレスでの個別共有やGoogleグループの活用も検討してみてください。
2026年のGoogle Workspaceは、GeminiのAI統合やポリシー可視化機能によって、共有管理がこれまでよりもわかりやすくなっています。この記事で学んだ知識を活かして、今日から安全でスムーズなスプレッドシート共有を実践してみてください。きっとチームのコラボレーションがもっと快適になるはずです。






コメント