【GAS】スプレッドシート罫線・枠線の自動設定、太さスタイル変更まとめサンプルコード【Google Apps Script】

GAS基本メソッド
この記事は約8分で読めます。

GASで罫線を自動でつけたり、枠線の設定や、罫線の太さなどのスタイル設定など、
スプレッドシートのGASの罫線でできることをまとめました。

コピペでそのまま使えるサンプルコードや、
サンプルデータも公開していますので、実際の動きを確認してみてください。

この記事で解説しているメソッド

スポンサーリンク

setBoder()
getLastRow()

GASで罫線を自動追加する

GASで罫線を追加するには、setBoderメソッドを使用します。
setBorder(top, left, bottom, right, vertical, horizontal)

順番範囲プロパティ説明
1top
2left
3bottom
4right
5vertical列(垂直方向境界線)
6horizontal行(水平方向境界線)

実際に使用するには、true、false、nullを使用してプロパティを設定します。
「setBorder(true,null,true,null,false,true)」

true罫線を追加
false罫線を削除
null変更しない

罫線の追加サンプルコード

function boder1() {

  //アクティブシートを取得
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  //最終行取得
  var lastRow = sheet.getLastRow();
  //罫線(実線)追加
  sheet.getRange(lastRow+1,1,1,7).setValue('罫線(実線)追加').setBorder(true,true,true,true,true,true);

}

このサンプルコードは、最終行に罫線を実線で追加するコードです。

罫線や枠線の線の太さなどのスタイルも変更することができます。

GASで罫線の太さや色を設定して自動で罫線を引く

GASで罫線の種類・太さや色を変更するには、プロパティでスタイル設定を使用します。
setBorder(上、左、下、右、垂直、水平、色、スタイル)

罫線の色はCSS表記の色で設定が可能です。
'#ffffff' 、 'white'など

罫線の太さや種類は、setBoderのスタイルの位置に、
「SpreadsheetApp.BorderStyle.DOUBLE」
という感じで、「SpreadsheetApp.BorderStyle」を前につけて設定します。

スタイル説明画像
DOTTED点線
DASHED破線
SOLID実線
SOLID_MEDIUM中実線
SOLID_THICK太い実線
DOUBLE2重線

サンプルコードの罫線の色は”Red”、スタイルは”DOUBLE”

function boder2() {

  //アクティブシートを取得
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  //最終行取得
  var lastRow = sheet.getLastRow();
  //罫線(実線)追加
  sheet.getRange(lastRow+1,1,1,7).setValue('スタイル付き罫線追加')
  .setBorder(true,true,true,true,true,true,'Red',SpreadsheetApp.BorderStyle.DOUBLE);

}

最終行にスタイル付きで罫線を追加しています。

表を最終行に追加して自動で罫線をつける

GASで最終行に追加して罫線を自動でつけるには、
getLastRowメソッドで最終行を取得してから、
表を挿入してsetBoderで罫線の設定を行うだけです。

スポンサーリンク

GASで最終行に表と罫線を自動挿入サンプルコード

function boder3() {

  //アクティブシートを取得
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  //最終行取得
  var lastRow = sheet.getLastRow();
  //表と罫線を追加
  let value = sheet.getRange('D4:J11').getValues();
  sheet.getRange(lastRow+1,1,8,7).setValues(value)
  .setBorder(null,true,true,true,null,null)
  .setBorder(null,null,null,null,null,true,true,SpreadsheetApp.BorderStyle.DASHED);

}

最終行に追加する方法はこちら
【GAS】スプレッドシートの最終行に追加、コピー、自動追加する方法まとめ【Google Apps Script】

GASで罫線の自動挿入をするサンプルデータ

サンプルデータはこちらからダウンロードしてください。
 【Copori】自動罫線サンプル 

自動罫線サンプルデータの使い方

1、 【Copori】自動罫線サンプル を開いてコピーしてください

3、メニューから「拡張機能」⇨「Apps Script」を開きます
※複数アカウントでログインしているとエラーで開けないので注意してください

4、権限の取得を行なってGASの実行やチェックボックスを入れてみてください。
 権限の取得方法はこちら 

5、初期化する時は、H16のチェックボックスにチェックを入れてください
(実行完了すると、実行結果のセル(A20:G20以降)が空欄になってH16のチェックが外れます)

自動罫線サンプルデータのGASコード

【Copori】自動罫線サンプルデータに入っているGASは5つです。

  1. 権限取得用.gs
  2. 罫線(実線)追加.gs
  3. スタイル付き罫線追加.gs
  4. 表と罫線を追加.gs
  5. チェックボックストリガー.gs
    2、3、4は先に説明しているコードを同じGASが入っています。

5のチェックボックストリガーは、
サンプルシートのチェックボックスをONにした時に実行されるGASが入っています。

function onEdit(e) {

  //編集情報取得
  var range = e.range;
  //編集された情報「range」からシート名を取得して変数「sheet」に格納
  var sheet = range.getSheet();
  //編集された行列取得
  var row = range.getRow();    // 行
  var col = range.getColumn(); // 列
  Logger.log(row+','+col); //ログ確認用

  if(row === 16){

    //最終行取得
    var lastRow = sheet.getLastRow();

    switch(col){
      case 1: //罫線(実線)追加
        sheet.getRange(lastRow+1,1,1,7).setValue('罫線(実線)追加').setBorder(true,true,true,true,true,true);
        sheet.getRange('A16').setValue(false);
        break;

      case 2: //スタイル付き罫線追加
        sheet.getRange(lastRow+1,1,1,7).setValue('スタイル付き罫線追加')
        .setBorder(true,true,true,true,true,true,'Red',SpreadsheetApp.BorderStyle.DOUBLE);
        sheet.getRange('B16').setValue(false);
        break;

      case 7: //表と罫線の追加
        let value = sheet.getRange('D4:J11').getValues();
        sheet.getRange(lastRow+1,1,8,7).setValues(value)
        .setBorder(null,true,true,true,null,null)
        .setBorder(null,null,null,null,null,true,true,SpreadsheetApp.BorderStyle.DASHED);
        sheet.getRange('G16').setValue(false);
        break;

      case 8: //初期化
        sheet.getRange(20,1,lastRow,7).clear();
        sheet.getRange('A20:G20').setBorder(true,null,null,null,null,null);
        sheet.getRange('H16').setValue(false);
        break;

      default: //全ての値に合致しない場合
        break;
    }
  }
}

シンプルトリガーのonEdit(e)で編集されたセルを取得し、
switch文で分岐してそれぞれの処理を行なっています。

switch文についてはこちら
【GAS】switchのcaseで複数処理、GASで複数分岐まとめ【Google Apps Script】

処理の中は、罫線の自動追加で説明したものと同じで、
チェックボックスのチェックを外す処理が入っています。

GASで表の記入や、最終行に追加の時に罫線も一緒に設定しておくと、
スプレッドシートを便利に使用できるので、使ってみてください。

【GAS】スプレッドシートの最終行に追加、コピー、自動追加する方法まとめ【Google Apps Script】

 

ありがとうございました!

スポンサーリンク

コメント

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