サイトアイコン Googleスプレッドシート 完全攻略

【GAS】ボタン(図形)からWebサイトを開く

GAS応用の一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

今回は、とっても価値の高い方法をお伝えします。


これを知ることであなたは、

なので、サクッとマスターして

と答えてあげてください。

動画はこちら

シートはこちら

*クリックすることでシートが開きます。(コピーしてお使いください)

基本形

function openUrl() {
  const url = 'https://www.yahoo.co.jp/'; // ★開きたいURLに変更
  const html = HtmlService.createHtmlOutput('<script>window.open("' + url + '", "_blank");google.script.host.close();</script>');
  SpreadsheetApp.getUi().showModalDialog(html, `${url}を開いています...`);
}
ポイント

GASから直接、URLを開くことはできません。
なので、HTML上からURLを開きます。

 

ボタンに割り当てる方法↓

【GAS】GAS(マクロ)を手軽にメニューやボタンから実行する方法(カスタムメニュー)
  • GAS(マクロ)をスプレッドシートのメニューから実行することができます。
  • GAS(マクロ)をボタンのクリックで実行することができます。
  •  

     

    URLをシート上に記載

    どうせならURLをスプレッドシートに記載してみましょう。

    (このURLをクリックすればそもそもボタンは不要ですが^^)

    以下を追加

    const sh = SpreadsheetApp.getActiveSheet()
      const url = sh.getRange("L1").getValue() //URLを記載したセル

     

    もうちょっとかっこよくするためにメッセージ内の文言を
    URLではなく、「タイトル」にしましょう。

     

    タイトルの取得

     

    IMPORTXML(URL, XPathクエリ, locale)

     

    XPathクエリに”//title”を指定することで、タイトルが取得できます。

    =IMPORTXML(URL, “//title”)

    ただ、これだと2箇所スプレッドシートから読み込むことになるので
    GAS上でタイトルを取得しましょう。

    以下の関数でタイトルが読み込めます。

    getTitleFromURL(URL)

    そして読み込んだタイトルをメッセージボックスに入れたバージョン。

    function openUrltitle() {
      const sh = SpreadsheetApp.getActiveSheet()
      const url = sh.getRange("L1").getValue()
      const title = getTitleFromURL(url)
      const html = HtmlService.createHtmlOutput('<script>window.open("' + url + '", "_blank");google.script.host.close();</script>');
      SpreadsheetApp.getUi().showModalDialog(html, `${title}を開いています...`);
    }
    
    
    
    //URLからタイトルを取得する
    function getTitleFromURL(url) {
      const response = UrlFetchApp.fetch(url);
      const html = response.getContentText();
      const match = html.match(/<title[^>]*>([^<]+)<\/title>/);
      console.log(match)
      return match ? match[1] : "タイトル未取得";
    }
    
    
    
    
    
    
    
    
    
    
    
    
    

     

     

     

     

    最後までご覧いただきありがとうございます。

    つぎはこちら

    【GAS】VLOOKUPをやってみる(Javascriptの配列に対するfind,map)
  • GASでVLOOKUP関数的な機能を実現できます。
  • 配列内の検索や値の取得方法がわかります。
  • GAS応用の一覧

    モバイルバージョンを終了