【GAS】Googleドキュメントにリンク付きでデータを差し込む

Google ドキュメント

GAS応用の一覧

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

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

前回

【GAS】Googleドキュメントにスプレッドシートで指定したデータを差し込む
  • スプレッドシート上でチェックしたデータを取得する方法がわかります。
  • GASの変更方法がわかります。
  • 今回は、とっても価値の高い方法をお伝えします。


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

    • Googleドキュメントでテキストにアクセスする方法がわかります。
    • Googleドキュメントで特定の範囲に対してリンク付きにする方法がわかります。

     

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

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

    ご質問

    【GAS】Googleドキュメントにスプレッドシートで指定したデータを差し込む
  • スプレッドシート上でチェックしたデータを取得する方法がわかります。
  • GASの変更方法がわかります。
  • スプレッドシートのセル内をURLにし、それを文字列ではなくリンクタイプのクリックできるURLで差し込みたいのですが難しいでしょうか

    動画はこちら

    【GAS】Googleドキュメントにリンク付き文字列を埋め込む方法(setLinkUrl)

    ドキュメントはこちら

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

    スクリプト

    /**
     * 置換時にURLを埋め込めこむ
     */
    function repwordaddurl() {
    
    
      const SEARCH = '{関数名}'         //検索文字列
      const REPTEXT = 'SEQUENCE関数'    //置換する文字列
      const REPURL = 'https://technical.verybestcbp.com/?s=SEQUENCE'  //埋め込むURL
    
    
      const body = DocumentApp.getActiveDocument().getBody()
    
      // body.replaceText(SEARCH, REPTEXT)
    
      const paragraphs = body.getParagraphs()
    
    
      paragraphs.forEach(p => {
        let text = p.getText()
        const match = text.match(SEARCH)
    
        //一致する文字列あり
        if (match) {
    
            //開始位置と置換文字列の長さを取得
            const index = match?.index
            const linkLen = REPTEXT.length - 1
    
            //文字列の置換し埋め込む
            text = text.replace(SEARCH, REPTEXT)  
            p.setText(text)
    
            //リンク付きにする
            console.log("index=", index, " linkLen=", linkLen," REPURL=",REPURL)
            p.editAsText().setLinkUrl(index, index + linkLen, REPURL)
        }
      })
    }

     

    ポイント

    文字列の置換の場合は、getBody()したものに対しreplaceText()すれば
    良かったのですが、

    例)
    const body = DocumentApp.getActiveDocument().getBody()
    body.replaceText(“検索文字列”,”置換文字列”)

    URLを埋め込む setLinkUrl は、getParagraphs したテキストに対して
    行う必要があります。

    しかもsetLinkUrlする際には、開始位置と長さを指定する必要があるので
    なかなか面倒です。

    とはいこれでリンクは埋め込めるので後は、スプレッドシートにおける
    セル内のリンクの有無に応じて処理を変更すればいいです。

     

     

     

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

    つぎはこちら

    【コピペでできる】 GoogleドキュメントにGスプレッドシートからデータを差し込む
  • Googleドキュメントの定型文にGoogleスプレッドシートのデータを差し込むことができます。
  • GASがなんのことかわからなくてもコピペで簡単にできます。
  • さらに自分用に簡単にカスタマイズできます。
  • GAS応用の一覧

    コメント

    タイトルとURLをコピーしました