Googleスプレッドシート内の特定の列(A列)にある記事番号を基に、記事番号が変わる行に下線を引くスクリプトです。以下に、コードの詳細な説明を示します。
function underlineRowsForArticleNumbers() {
// アクティブなスプレッドシートを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// A列のデータ範囲を取得(A1から最終行まで)
var range = sheet.getRange("A1:A" + sheet.getLastRow());
var values = range.getValues();
// 記事Noごとに行全体に下線を引く
for (var i = 0; i < values.length - 1; i++) {
var currentArticleNo = values[i][0];
var nextArticleNo = values[i + 1][0];
if (currentArticleNo && nextArticleNo && currentArticleNo !== nextArticleNo) { // 記事Noが変わる場合
var rowRange = sheet.getRange(i + 1, 1, 1, sheet.getLastColumn()); // i + 1は1インデックスベースのため
rowRange.setBorder(null, null, true, null, null, null, "black", SpreadsheetApp.BorderStyle.SOLID);
}
}
// 最後の行には必ず下線を引く
var lastRowRange = sheet.getRange(sheet.getLastRow(), 1, 1, sheet.getLastColumn());
lastRowRange.setBorder(null, null, true, null, null, null, "black", SpreadsheetApp.BorderStyle.SOLID);
}
処理の流れ
- アクティブなスプレッドシートを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
- 現在アクティブなスプレッドシートを取得し、その中のアクティブなシートを取得します。
- A列のデータ範囲を取得
var range = sheet.getRange("A1:A" + sheet.getLastRow());
var values = range.getValues();
- A1から最終行までの範囲を取得し、その範囲の全ての値を二次元配列として取得します。
- 記事Noごとに行全体に下線を引く
for (var i = 0; i < values.length - 1; i++) {
var currentArticleNo = values[i][0];
var nextArticleNo = values[i + 1][0];
if (currentArticleNo && nextArticleNo && currentArticleNo !== nextArticleNo) {
var rowRange = sheet.getRange(i + 1, 1, 1, sheet.getLastColumn());
rowRange.setBorder(null, null, true, null, null, null, "black", SpreadsheetApp.BorderStyle.SOLID);
}
}
- A列の各行を順番にチェックします。
- 現在の行の値(記事No)と次の行の値を比較し、記事Noが変わる場合に下線を引きます。
- 下線は
setBorder
メソッドを使って設定し、行全体に対して下線を引きます。
- 最後の行に下線を引く
var lastRowRange = sheet.getRange(sheet.getLastRow(), 1, 1, sheet.getLastColumn());
lastRowRange.setBorder(null, null, true, null, null, null, "black", SpreadsheetApp.BorderStyle.SOLID);
- 最後の行には必ず下線を引きます。これも
setBorder
メソッドを使って行全体に下線を引きます。
- 最後の行には必ず下線を引きます。これも
用途
このスクリプトは、スプレッドシート内で記事番号(例えば注文番号やタスク番号など)が変わる行に視覚的な区切りを作りたい場合に便利です。
例えば、記事番号が変わるたびに視覚的な区切りを入れることで、データの識別が容易になります。
コメント