1

Google スプレッドシートには多数のシートがあるため、最初のシートにすべてのシートへのリンクを作成したいと考えています。これは、次のコードを使用して Google スプレッドシート内で機能します。

function goToSheet2() {
     goToSheet("Sheet2");
}
function goToSheet(sheetName) {
    var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
    SpreadsheetApp.setActiveSheet(sheet);
}

この他のスタックオーバーフローの投稿で正確な方法についての詳細な説明。

ただし、シートを埋め込むと、機能しなくなります。これは、このスクリプトがボタン/画像をリンクのように機能させるため (スクリプトは適切な を見つけるのに役立つだけです#gid=)、実際にはページ全体をリロードするだけであり、埋め込みバージョンでは不可能であるという事実に関係していると思います.

正しい方向へのポインタは大歓迎です。

編集:これが機能しない理由がわかりました。このページに記載されているように:

スプレッドシート、ドキュメント、またはフォームを編集する権限を持つユーザーのみが、バインドされたスクリプトを実行できます。表示アクセスのみを持つコラボレーターは、スクリプト エディターを開くことはできませんが、親ファイルのコピーを作成すると、そのコピーの所有者になり、スクリプトのコピーを表示して実行することができます。

ただし、バインドされたスクリプトを、埋め込みファイルで動作するスタンドアロン スクリプトにする方法を理解できないようです。「Web アプリケーションとしてデプロイ」してスクリプトを公開しようとしましたが、うまくいきません。

編集 2 : スプレッドシートの埋め込みバージョンでスクリプトを動作させるための非常に洗練されていない方法がありますが、スプレッドシートは私が望む方法ではありません。

説明: 基本的に、iframe コードを次から変更します。

<iframe src="https://docs.google.com/spreadsheets/d/SPREADSHEET-ID/pubhtml?widget=true&amp;headers=false&amp;chrome=false" height="500" width="500"></iframe>

これに:

<iframe src="https://docs.google.com/spreadsheets/d/SPREADSHEET-ID/edit?usp=sharing?widget=true&amp;headers=false" height="500" width="500"></iframe>

ただし、これにより、メニューとすべてを含むGoogleスプレッドシートページ全体を表示する必要がありました. スクリプトは機能しますが、画像をクリックして別のシートに変更できます。

おもしろいこと&rm=minimalに、リンクに追加することでメニューを非表示にできます、スクリプトが機能しなくなりました。

4

1 に答える 1