ADVERTISEMENT

【Googleスプレッドシート】条件付き書式をテンプレート化して再利用!別ファイルへの転用

【Googleスプレッドシート】条件付き書式をテンプレート化して再利用!別ファイルへの転用
🛡️ 超解決

同じ条件付き書式のルールを別のシートやファイルで何度も設定し直していませんか。手作業でルールを適用するのは時間がかかり、設定ミスの原因にもなります。この記事では、条件付き書式をテンプレート化して再利用する方法を解説します。コピー&ペーストのテクニックからApps Scriptを使った転用方法まで、具体的な手順を詳しく紹介します。

【要点】条件付き書式をテンプレート化する3つの方法

  • コピー&ペースト: 書式のみを貼り付けることで、ルールを別のセル範囲に複製します。手軽な方法ですが、参照範囲がずれる場合があります。
  • 範囲を指定して貼り付け: 事前にルールを適用したセル範囲をコピーし、貼り付け先の範囲を指定することで、ルールをそのまま転用できます。
  • Apps Scriptでルールを移植: スクリプトを使ってルールの条件や書式をプログラムで複製します。ファイル間の転用や大量のルールにも対応できます。

ADVERTISEMENT

条件付き書式をテンプレート化するための基礎知識

条件付き書式のテンプレート化とは、設定済みのルールを別のシートやファイルで再利用できる形にすることです。Googleスプレッドシートの条件付き書式は、セルの値や数式に応じて書式を自動適用する機能です。このルールはシートごとに管理されます。そのため、同じルールを別のシートで使いたい場合、通常は手動で再設定が必要です。しかし、コピー&ペーストやスクリプトを活用すれば、ルールを効率的に複製できます。この記事では、シート内の別範囲へのコピーから、別ファイルへの転用までをカバーします。

条件付き書式を別シートにコピーする手順

ここでは、同じスプレッドシート内の別シートに条件付き書式を複製する方法を説明します。

  1. ルールが設定されたセル範囲を選択する
    条件付き書式が適用されているセル範囲全体をドラッグで選択します。範囲は必ずルールの適用範囲と一致させる必要があります。
  2. コピーを実行する
    キーボードの「Ctrl+C」でコピーするか、右クリックメニューから「コピー」を選択します。
  3. 貼り付け先のシートに移動する
    下部のシートタブをクリックして、ルールを適用したいシートを開きます。
  4. 貼り付け先のセル範囲を選択する
    コピー元と同じサイズのセル範囲を選択します。例えばA1:D10をコピーした場合は、貼り付け先もA1:D10を選びます。
  5. 書式のみを貼り付ける
    右クリックメニューから「貼り付けオプション」の「書式のみ貼り付け」を選択します。または「Ctrl+Shift+V」でも同様です。これにより、値や数式を保持せず、条件付き書式のルールだけが複製されます。

この方法では、ルールの条件式に相対参照が含まれている場合、貼り付け先の位置によって参照が自動調整されます。例えば「=A1>100」という条件は、貼り付け位置に応じて「=B1>100」のように変わります。絶対参照($A$1など)を使っている場合はそのままコピーされます。

条件付き書式を別ファイルに転用する手順

別のスプレッドシートファイルに条件付き書式を転用するには、以下の方法があります。

コピー&ペーストでファイル間転用

  1. ソースファイルでルール範囲をコピーする
    条件付き書式が適用されているセル範囲を選択し、「Ctrl+C」でコピーします。
  2. ターゲットファイルを開く
    転用先のスプレッドシートをブラウザで開き、該当のシートを表示します。
  3. 貼り付け先のセルを選択して書式貼り付け
    適切なセル範囲を選択し、右クリックから「書式のみ貼り付け」を実行します。値や数式が貼り付けられないように注意してください。

この方法はシンプルですが、参照先が別ファイルのセルを指している場合、ルールが正しく機能しない可能性があります。条件式に他のシートやファイルを参照している場合は、別途調整が必要です。

Apps Scriptでルールを移植する

より複雑なルールや大量のルールを正確に転用したい場合、Apps Scriptを使います。以下の手順に従ってください。

  1. スクリプトエディタを開く
    ソースファイルのメニューから「拡張機能」→「Apps Script」を選択します。
  2. ルールを取得する関数を作成する
    以下のコードを入力します。
function getConditionalFormatRules() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rules = sheet.getConditionalFormatRules();
  return rules;
}
  1. ルールを適用する関数を作成する
    ターゲットファイルのスクリプトエディタで、以下のコードを実行します。
function applyConditionalFormatRules() {
  var targetSheet = SpreadsheetApp.getActiveSheet();
  // ここにソースファイルから取得したルールをコピーして貼り付け
  var rules = [●] // 前の関数で取得したルールオブジェクト
  targetSheet.setConditionalFormatRules(rules);
}
  1. ルールをJSONでエクスポートする
    ルールをテキストとして保存したい場合は、JSON.stringify(rules) を使って出力し、ターゲットファイルで読み込みます。

Apps Scriptを使うと、ルールの条件や書式をプログラムで正確に複製できます。ファイル間の参照が含まれている場合は、ルールの条件式を動的に書き換える処理も追加できます。

ADVERTISEMENT

条件付き書式をテンプレート化する際の注意点

相対参照が自動調整されてしまう

書式のみを貼り付けた場合、条件式内の相対参照は貼り付け先のセル位置に応じて変わります。例えば、元の範囲A1:A10で「=A1>100」と設定していたルールを、B1:B10に貼り付けると「=B1>100」になります。意図しない条件になる場合があるため、貼り付け後にルールを確認しましょう。必要に応じて、絶対参照($A$1など)に変更してからコピーすると、参照が固定されます。

範囲が異なるとルールが重複してしまう

貼り付け先の範囲がコピー元と異なるサイズの場合、ルールが複数生成されることがあります。例えば、コピー元がA1:A10で、貼り付け先がA1:B10の場合、条件付き書式の管理画面でルールが分割されて表示されることがあります。この現象を防ぐには、貼り付け先の範囲をコピー元と完全に同じサイズ・形状にしてください。

別ファイル間でルールの参照が切れる

条件式にIMPORTRANGEやINDIRECTを使って別ファイルを参照している場合、コピー先のファイルでその参照が無効になることがあります。ルールを転用する前に、条件式を編集して参照を適切なものに変更する必要があります。Apps Scriptを使えば、条件式を動的に置換できます。

条件付き書式のコピー方法の比較

方法 手軽さ 正確さ ファイル間転用
書式のみ貼り付け 非常に簡単 相対参照が自動調整される 可能
範囲指定ペースト やや手間がかかる サイズが揃っていれば正確 可能
Apps Script プログラミングが必要 完全に制御可能 最も確実

上記の表の通り、手軽さを重視するなら書式のみ貼り付け、正確さやファイル間転用を重視するならApps Scriptが適しています。用途に応じて使い分けてください。

まとめ

条件付き書式をテンプレート化する主な方法として、書式のみの貼り付け、範囲指定ペースト、Apps Scriptの3つを紹介しました。同じシート内の別範囲へのコピーは書式貼り付けで簡単にできます。別ファイルへの転用には、Apps Scriptを使うと参照の自動調整や条件式の書き換えにも対応できます。まずは書式貼り付けを試してみて、ルールが複雑な場合はスクリプト化を検討してください。条件付き書式のルールを再利用することで、作業効率が大幅に向上します。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。