スプレッドシート内にHTMLタグが含まれるテキストを処理する際、それらのタグを取り除く必要があることがあります。Google Sheetsには直接HTMLタグを除去するための標準関数はありませんが、Google Apps Scriptを使用することでカスタム関数を作成できます。
この記事では、簡単なカスタム関数を作成し、スプレッドシート内でHTMLタグを除去する方法を紹介します。
私の場合は、MakeShopからダウンロードした商品をGMCのフィード化するのに用いました!
手順
1. スクリプトエディタの開き方
まず、スプレッドシートを開き、「拡張機能」>「Apps Script」を選択します。これにより、Google Apps Scriptエディタが開きます。
2. スクリプトの記述
次に、以下のスクリプトをコピーして、コードエディタに貼り付けます。このスクリプトは、HTMLタグを除去するためのカスタム関数REMOVEHTMLを定義します。
/**
* 指定したセルからHTMLタグとHTMLエンティティを取り除くカスタム関数
*
* @param {string} input - HTMLタグを含むテキスト
* @return {string} - HTMLタグとHTMLエンティティが取り除かれたテキスト
* @customfunction
*/
function REMOVEHTML(input) {
if (typeof input !== 'string') return '';
// HTMLタグを除去
var noHtml = input.replace(/<\/?[^>]+(>|$)/g, "");
// HTMLエンティティを除去
var noEntities = noHtml.replace(/&[^;]+;/g, "");
return noEntities;
}
この関数は、入力されたテキストからHTMLタグを正規表現を使って除去します。
↑は単純に<>で囲まれたタグだけでなく、 などのHTMLエンティティも削除するようにしてみました。これで割といいはず。
3. スクリプトの保存
スクリプトエディタの左上にある「保存」アイコンをクリックし、プロジェクトに名前を付けて保存します。例えば「RemoveHTMLTags」といった名前にします。
4. カスタム関数の使用方法
スクリプトを保存したら、スプレッドシートに戻り、以下のようにカスタム関数を使用します。
=REMOVEHTML(A1)
この関数は、セルA1に含まれるテキストからHTMLタグを取り除いた結果を返します。他のセルに適用する場合は、適宜セル参照を変更してください。
まとめ
Google Apps Scriptを使用すると、スプレッドシートで様々なカスタマイズが可能になります。
もしわからないことあったらコメント欄にどうぞー!