GASのgetFontStyles()メソッドを使いこなす!基本から応用まで解説

Google Apps Script(GAS)のgetFontStyles()メソッドって、スプレッドシート内でセルに適用されているフォントスタイル、特に斜体(italic)を一括で取得できるめっちゃ便利な機能なんよ。今日は、このメソッドの使い方をわかりやすく解説するけど、実際に使ってみるとめっちゃ役立つこと間違いなしばい!

スポンサーリンク

基本的な使い方

まず、getFontStyles()の使い方からやけど、このメソッドはRangeクラスに属していて、指定した範囲内のセルのフォントスタイルを取得できるんじゃ。簡単なコードを見てみよう。

const fontStyles = range.getFontStyles();

このコードを実行すると、選択した範囲のセルに設定されているフォントスタイルが二次元配列として返されるんよ。たとえば、ある範囲が3行2列だったら、3×2の配列が返ってくるわけさ。

戻り値の内容

  • 'italic': セルの文字が斜体
  • 'normal': 通常のフォントスタイル
  • 空文字列: セルが空白の場合

こんな感じで、セルのスタイルをサクッと取得できるばい。

実際の使用例

ここからは、実際にどんな風に活用するかを紹介するけん。例えば、選択した範囲内の各セルのスタイルをログに出力してみよう。

function analyzeFontStyles() {
  const sheet = SpreadsheetApp.getActive().getSheetByName('サンプルシート');
  const targetRange = sheet.getRange('A1:C3');
  const styles = targetRange.getFontStyles();

  styles.forEach((row, rowIndex) => {
    row.forEach((style, colIndex) => {
      console.log(`セル ${String.fromCharCode(65 + colIndex)}${rowIndex + 1}: ${style}`);
    });
  });
}

このコードを実行すれば、A1からC3までの範囲内にある各セルのフォントスタイルがコンソールに表示されるけ。ここで使われてるString.fromCharCode(65 + colIndex)は、列をアルファベットで表示するためのちょっとした技なんよ。

パフォーマンスを意識した使い方

でも、大きな範囲に対してこの処理を使うと、すぐに処理が遅くなったりするけ。例えば、10,000セル以上を処理する場合、時間制限(6分)がきつくなることもあるから注意が必要じゃ。

バッチ処理の活用

もし処理が重くなりそうなら、範囲を分けて順番に処理する方法を使うと効率的ばい。それでもパフォーマンスが気になる場合は、キャッシュを活用して何度も同じデータを取得せんようにするといいけね。

スタイルの集計

さらに応用編として、範囲内のスタイルを集計してみるのも面白いんじゃ。たとえば、範囲内で斜体が使われているセルの割合を計算するコードはこんな感じやで。

function generateStyleReport() {
  const range = SpreadsheetApp.getActiveRange();
  const styles = range.getFontStyles();
  let italicCount = 0;

  const analysis = styles.map((row, i) => {
    return row.map((style, j) => {
      if(style === 'italic') italicCount++;
      return { row: i+1, col: j+1, status: style };
    });
  });

  console.log(`斜体セル割合: ${(italicCount / (styles.length * styles[0].length) * 100).toFixed(1)}%`);
  return analysis;
}

このコードを使うと、選択した範囲内でどれくらいのセルに斜体が使われてるか、パーセンテージで教えてくれるけ。

よくあるトラブルとその対処法

実際に使ってると、ちょっとしたトラブルにぶつかることもあるばい。そんな時の対策も覚えておくと便利じゃ。

範囲外エラー

存在しないシートや範囲を指定したらエラーが出ることがあるけど、その時はgetSheetByName()で戻り値をチェックするようにしよう。

const sheet = SpreadsheetApp.getActive().getSheetByName('データ');
if (!sheet) throw new Error('シートが存在しません');

配列次元の不一致

また、getFontStyles()で取得した配列の次元が範囲と合わないときがあるけ。そんなときは、配列のサイズをしっかり検証することが大事じゃ。

function validateArrayDimensions(range, stylesArray) {
  const rows = range.getNumRows();
  const cols = range.getNumColumns();
  if (stylesArray.length !== rows || stylesArray[0].length !== cols) {
    throw new Error('配列の次元が範囲と一致しません');
  }
}

結論

getFontStyles()は、スプレッドシート内のフォントスタイルを簡単に取得・操作できる便利なメソッドじゃ。今回紹介したように、大規模なデータ処理からスタイルの一括変更まで幅広い活用法があるけ。エラー対処やパフォーマンス最適化を意識すれば、さらにスムーズに使えるようになるはずよ。

コメント

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