スプレッドシートでHTMLタグのみ削除する方法を解説!【正規表現を使用】

スプレッドシートでHTMLタグのみ削除する方法を解説!【正規表現を使用】 スプシの使い方

WebページからコピーしたテキストなどをGoogle スプレッドシートに貼り付けると、意図せずHTMLタグ(例: <a href="...">, <strong>, <br>, <span style="..."> など)が含まれてしまうことがあります。これらのタグは、セル内での見た目を崩すだけでなく、データの並べ替えや集計、他のシステムへの連携時に問題を引き起こす可能性があります。

スプレッドシートの「検索と置換」機能「正規表現」を組み合わせることで、これらの不要なHTMLタグを一括で効率的に削除することが可能です。本記事では、その具体的な手順と注意点を詳しく解説します。


「検索と置換」機能を使った手順

以下のステップで、シート内または選択範囲内のHTMLタグを一括で削除します。

  1. 【重要】操作対象範囲の選択
    まず、HTMLタグを削除したいセルが含まれる範囲を選択します。特定の列、特定の行、あるいは表全体など、操作対象を明確に指定してください。
    意図しないセル(特に <> を含む数式や重要なテキスト)まで処理してしまわないよう、範囲を慎重に選択することが非常に重要です。
  2. 「検索と置換」ダイアログを開く
    メニューバーから「編集」「検索と置換」を選択します。
    (ショートカットキー: Windows/ChromeOS: `Ctrl + H`, Mac: `⌘ + Shift + H`)
  3. 検索条件と置換後の文字列を入力
    開いたダイアログに以下のように入力します。

    • 検索: 以下の正規表現を正確にコピー&ペーストしてください。
      "<("[^"]*"|'[^']*'|[^'">])*>"


      正規表現の意味: これは「<で始まり>で終わる、一般的なHTMLタグ」に一致するパターンです。タグ内に属性(例: href="...", style='...')が含まれていても、それらを考慮してタグ全体を一つの塊として認識しようとします。

    • 置換後の文字列: 何も入力しません(完全に空欄にします)
      (これにより、検索で見つかったHTMLタグが「空の文字列」に置き換えられ、結果的に削除されます。)
  4. 検索オプションを設定
    ダイアログ下部のオプションを以下のように設定します。

    • 検索対象: 「特定の範囲」(手順1で選択した場合)または「このシート」などを選択(「特定の範囲」推奨)。
    • 正規表現を使用した検索: 必ずチェックを入れます。
    • 大文字と小文字の区別: 通常はチェック不要(HTMLタグは通常小文字ですが、大文字でもマッチします)。
    • 完全に一致するセルを検索: チェック不要。
  5. 置換を実行
    設定内容(特に「検索」の正規表現と「置換後の文字列」が空欄であること、「正規表現を使用した検索」のチェック)をよく確認してから、「すべて置換」ボタンをクリックします。置換されたインスタンス(タグ)の数が表示されます。
  6. 結果を確認
    「完了」ボタンでダイアログを閉じ、選択した範囲のセルからHTMLタグがきれいに削除され、必要なテキスト部分だけが残っているか、また意図しないテキストが削除されていないかを確認します。

注意点

この方法でHTMLタグを削除する際には、以下の点にご注意ください。

  • 正規表現の限界:
    提示した正規表現 `”<(“[^”]*”|'[^’]*’|[^'”>])*>” ` は、多くの一般的なHTMLタグ(開始タグ、終了タグ、属性付きタグなど)に対応できるように作られていますが、万能ではありません。非常に複雑に入れ子になったタグ、文法的に正しくないタグ、あるいはタグ内に予期せぬ文字(例: `>`)が含まれている場合など、完璧にすべてのタグを削除できない可能性や、逆にタグではない部分まで誤ってマッチしてしまう可能性もゼロではありません。あくまで簡易的な除去方法とご理解ください。
  • 意図しない置換のリスク:
    もしセル内にHTMLタグ以外の目的で <...> という形式のテキスト(例: 不等号を使った数式 `A1<B1`、プログラミングコードの一部、特殊な記号など)が含まれている場合、この正規表現がそれらに誤ってマッチし、削除してしまうリスクがあります。実行前に対象データの確認と、処理範囲の慎重な選択が不可欠です。
  • 元に戻す機能:
    操作を誤った場合でも、慌てずに `Ctrl + Z` (Mac: `⌘ + Z`) を押すか、メニューの「編集」→「元に戻す」を選択すれば、直前の状態に戻すことができます。
  • バックアップの推奨:
    特に重要なデータや大量のデータを処理する前には、必ずファイル全体のコピーを作成しておく(「ファイル」→「コピーを作成」)ことを強く推奨します。万が一問題が発生しても、元の状態に戻せるため安心です。

より高度な方法(代替案)

「検索と置換」+正規表現は手軽ですが、限界もあります。より確実性や柔軟性を求める場合は、以下の方法も検討できます。

  • Google Apps Script (GAS): プログラミングでより洗練されたロジック(例えば、特定のタグだけ削除、タグの中身だけ抽出など)を組むことができます。定期的な自動処理も可能です。
  • データ取得時の工夫 (`IMPORTXML`, `IMPORTHTML`): Webからデータをスプレッドシートに取り込む際にこれらの関数を使う場合、XPathクエリやCSSセレクタを工夫することで、最初からHTMLタグを除いたテキスト情報だけを抽出できる場合があります。

まとめ

Google スプレッドシートの「検索と置換」機能で、検索条件に正規表現 "<("[^"]*"|'[^']*'|[^'">])*>" を指定し、置換後の文字列を空欄にすることで、セル内の多くの一般的なHTMLタグを効率的に一括削除できます。Webページからのコピー&ペースト後のデータ整形などに非常に便利な機能です。

ただし、正規表現には限界があり、意図しないテキストまで削除してしまうリスクも伴います。必ず事前にデータのバックアップを取り、操作範囲を慎重に選択した上で、注意深く実行するようにしてください。

コメント