Google Spreadsheetで列を削除したいときに便利な関数があります。それは、deleteColumnという関数です。この関数は、Google Apps Script(GAS)のスプレッドシートクラスに属するメソッドで、指定した位置の列を削除します。この関数は、スプレッドシートに複数の列がある場合にのみ使用できます。スプレッドシートに列が一つしかない場合は、エラーが発生します。
- deleteColumn関数の基本的な構文と引数の意味
- deleteColumn関数で列を削除するプログラムサンプルとその結果
- deleteColumn関数でエラーが発生する場合の対処法
deleteColumn関数の基本的な構文と引数の意味
deleteColumn関数の基本的な構文は以下のとおりです。
var spreadsheet = spreadsheet.deleteColumn(columnPosition);
ここで、spreadsheetはスプレッドシートオブジェクトで、SpreadsheetApp.getActiveSpreadsheet()などで取得できます。columnPositionは削除したい列の位置で、数値型の値を指定します。例えば、1を指定すると最初の列を削除します。この関数は、列を削除した後に、同じスプレッドシートオブジェクトを返します。この関数には引数は一つだけです。
deleteColumn関数で列を削除するプログラムサンプルとその結果
では、実際にdeleteColumn関数で列を削除するプログラムを書いてみましょう。以下のようなスプレッドシートを用意します。
このスプレッドシートで、最初の列(A列)を削除するプログラムは以下のようになります。
function deleteColumn() {
// スプレッドシートオブジェクトを取得
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// 最初の列を削除
spreadsheet.deleteColumn(1);
}
このプログラムを実行すると、以下のようにスプレッドシートが変更されます。
deleteColumn関数でエラーが発生する場合の対処法
deleteColumn関数は、スプレッドシートに列が一つしかない場合には使用できません。この場合は、エラーが発生します。例えば、以下のようなスプレッドシートで、deleteColumn関数を実行すると、以下のようなエラーメッセージが表示されます。
Exception: You can't remove the last column in a sheet.
このような場合は、スプレッドシートに新しい列を追加してから、deleteColumn関数を実行する必要があります。例えば、以下のようなプログラムを書くと、エラーを回避できます。
function deleteColumn() {
// スプレッドシートオブジェクトを取得
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// アクティブなシートオブジェクトを取得
var sheet = spreadsheet.getActiveSheet();
// アクティブなシートに含まれる列の数を取得
var columnCount = sheet.getMaxColumns();
// 列が一つしかない場合は、新しい列を追加
if (columnCount == 1) {
sheet.insertColumnAfter(1);
}
// 最初の列を削除
spreadsheet.deleteColumn(1);
}
まとめ
この記事では、Google Spreadsheetで列を削除する方法について紹介しました。deleteColumn関数を使えば、指定した位置の列を削除することができます。この関数は、Google Apps Script(GAS)のスプレッドシートクラスに属するメソッドで、列を削除した後に、同じスプレッドシートオブジェクトを返します。この関数には引数は一つだけです。ただし、スプレッドシートに列が一つしかない場合は、エラーが発生するので注意が必要です。詳細は、公式ドキュメントを参照してください。
参考文献
このブログでは断片的な説明になってしまっていますが、本書は幅広いGASの内容が網羅的に学べる本です。イチから学びたい方は是非読んでみてください。
すでにGASをある程度マスターした方にも辞書的に手元に置いておくと便利です。