【GAS】スプレッドシートからURLを開く方法
スプレッドシートから特定のURLを開けるようにしたいと思う場合がありますよね。
ボタンを押した時に、3つの必要なページに対してのURLを開けるようにしておくと、操作者もとても便利になるでしょう。
今回は、スプレッドシートからURlを開けるようにGASで実装していきます。
実装する際の注意点も含めて解説していきますので、参考にして見てくださいね!
紹介するコードは私が実際に使用しているものですので、動作確認はできています。
安心して使ってもらえればと思います!
では、一緒に見ていきましょう!
実装概要
今回実装する概要から整理しましょう。
実装概要
スプレッドシート上のボタンを押して、指定のページを開く
ボタンはこんな感じのボタンで関数を割り当てているものを使用します。
ボタンをクリックすると指定したページを別タブで開くようにします。
実際のコード
では、コードを見ていきましょう。
今回は、二つのURLを開く想定で行います。
function openURL() {
var url1 = "https://www.google.co.jp/"
var url2 = "https://www.yahoo.co.jp/"
var script = "<script>window.open('" + url1 + "', '_blank').focus()</script><script>window.open('" + url2 + "', '_blank').focus();google.script.host.close();</script>";
var html = HtmlService.createHtmlOutput(script);
SpreadsheetApp.getUi().showModalDialog(html, 'Open ' + url1);
SpreadsheetApp.getUi().showModalDialog(html, 'Open ' + url2);
Utilities.sleep(3000);
}
もし、URLを3つ以上開きたい場合は、同様にscriptに追加していってください。
実行して開かない場合の対処法
初めて実行したときに開かない場合があります。
1つの原因として、ポップアップがブロックされているためです。
ブラウザURLバーの右側に、ブロックしましたというマークが出てきているはずですので、それを「常に許可する」にしてあげましょう。
その後、最後実行することで正常にURLが開けるようになります。
コードの最後に、Utilities.sleep(3000);で3秒間待つようにしています。
これは、通信の関係でURLが開ききれず処理が終わってしまう場合があるからです。
何回か試してみて、もし必要なかったら外してもらっても構いません!
まとめ
今回は、簡単にスプレッドシートからURLを開けるようにするコード例を紹介しました。
URLを開けるようにすることで、ユーザーに無駄な手間を省かせることができとても効果的です。
ぜひ使って見てくださいね。ではまた!