Googleスプレッドシートを使っていると、不要なシートを削除したいときがあります。
削除するシートが2,3コであれば問題ありません。
しかし、削除したいシートが多くなると一つずつ手作業で削除するのはメンドウです。
そこで、不要シートを削除する作業をGASで一発で行う方法を紹介していきます。
・シート削除作業を一発処理
・ミスで重要なシートを削除してしまうことがない
・他の人に作業を引継ぐことができる
今回は、ご自身の扱うデータによってGASプログラムを修正する必要があります。
画像や動画を使いながら解説していますので、ご自身のPCで試しながらご覧ください。
目次
- 1 Googleスプレッドシートの転記作業を自動化の事例を解説
- 2 プログラムよりショートカットキー
- 3 「Googleスプレッドシートのシートに削除する」プログラムを解説
- 3.1 プログラム0|スプレッドシート名の設定
- 3.2 プログラム1|スプレッドシートの情報を取得
- 3.3 プログラム2|削除したくないシート名を配列で格納
- 3.4 プログラム3|スプレッドシートのシート数を取得
- 3.5 プログラム4|スプレッドシートのシート数だけ繰り返す
- 3.6 プログラム5|flagをtrue設定
- 3.7 プログラム6|変数shに一番右にあるシートを設定
- 3.8 プログラム7|プログラム2で設定したシートを確認
- 3.9 プログラム8|shがプログラム2で設定した削除したくないシートかどうかを判別
- 3.10 プログラム9|flagをfalseに変更してループから抜ける
- 3.11 プログラム10|flagがtrueならshを削除
- 4 Google Apps Script(GAS)について詳しく理解したいなら
- 5 Googleスプレッドシートを効率的に操作したいなら
Googleスプレッドシートの転記作業を自動化の事例を解説
使用手順2|GASプログラムを実行
使用手順3|確認作業(不要シートの削除を確認)
以下で詳しく説明していきます。
使用手順1|スプレッドシートのデータ確認
今回扱う事例は以下です。
このなかで、「シート1」と「シート2」を残して、「商品A」「商品B」「商品C」「商品D」「商品E」「商品F」のシートを削除することを考えます。
この作業をGASプログラムで実行します。
使用手順2|GASプログラムを実行
以下の手順でプログラムを実行していきます。
2. 「スクリプトエディタ」をクリック
3. GASプログラムをデフォルトの記載を削除
4. この記事で紹介しているGASプログラムをコピペ
5. ファイルをクリック
6. 保存をクリック
7. プログラムを実行
以下で一つずつ解説していきます。
以下の画像は、別の記事を転用しているものがあります。
操作の内容に違いがないため、画像を修正せずにそのまま使用しています。
ご了承ください。
そうすると、以下のスクリプトエディタを出現します。
ちなみに1と2の作業は以下のショートカットキーでも開くことが可能です。
1. ツールをクリックする|[Alt] + [T]
2. スクリプトエディタをクリックする|[E]
以下のリンク先のGASプログラムをコピーします。(リンク先は同じページ下部です)
まず、以下のスクリプトエディタを選択して、もともと記載されているプログラムを削除します。
そして、コピーしたGASプログラムソースを貼り付けます。
ここまで作業が進むと以下のようになっているはずです。
ここまで出来たら、以下のとおりファイルを保存します。
5と6の作業は、[Ctrl] + [S]のショートカットキーを使うことをオススメ
プログラミングだけでなく、パソコン仕事においてはショートカットキーを使う方が早いです。
ぜひショートカットキーでの作業をオススメします。
7の作業は、[Ctrl] + [R]のショートカットキーを使うことをオススメ
ちなみにプログラムエディタの背景色が黒にする方法や、正確な操作を知りたい人がいるかもしれません。
その場合は、以下の動画をご覧いただくことをオススメします。
上記の動画では、GASを使い始めるまでの操作手順を動画で解説しています。
もし動画よりテキストのほうが得意な人は、以下の記事を参考にしていただくと良いです。
使用手順3|確認作業(不要シートの削除を確認)
プログラムを実行すると、以下のようになります。
・「シート1」、「シート2」は削除せずに残す(プログラムの設定で残したいシートは変更可能)
このようにシート削除作業をプログラムで自動化することができます。
プログラムの詳細解説は記事後半で行っています。
プログラムよりショートカットキー
GASプログラムの記事を紹介している中で紹介する内容ではないかもしれませんが、ショートカットキーに自信がない人はショートカットキーから学ぶことをオススメします。
なぜなら、プログラミングよりショートカットキーで対応する仕事のほうが多いからです。
たとえば、この記事では不要シートを削除するプログラムを紹介しています。
しかし、シートを大量に削除する仕事ってそこまで多くはないはずです。
大量のシート削除より、むしろ2,3コのシート削除の方が頻度は多いのではないでしょうか。
そうすると、シート削除のショートカットキーを覚えておく方が役立ちます。
1. 削除したいシートを選択|[Ctrl] + [Shift] + [PageUp] もしくは [Ctrl] + [Shift] + [PageDown]
2. シート編集のダイアログ|[Alt] + [Shift] + [s]
3. 削除を選択|[↓]
4. 削除を選択|[Enter]
ショートカットキー慣れるとスプレッドシートのシート削除はカンタンに処理できるようになります。
ちなみに、Googleスプレッドシートでよく使うショートカットキーは以下の動画で解説しています。
全力で解説しているので、ぜひご覧いただきたい動画です。
「Googleスプレッドシートのシートに削除する」プログラムを解説
GASプログラムの全体を以下に記載しますので、コピペしてご利用ください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
// プログラム0|スプレッドシート名の設定 function DeleteSheets() { // プログラム1|スプレッドシートの情報を取得 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getActiveSheet(); // プログラム2|削除したくないシート名を配列で格納 var sheets = ['シート1','シート2']; // プログラム3|スプレッドシートのシート数を取得 var sheetcount = spreadsheet.getNumSheets(); // プログラム4|スプレッドシートのシート数だけ繰り返す for(var i = sheetcount; i > 1; i--){ // プログラム5|flagをtrue設定 var flag = true; // プログラム6|変数shに一番右にあるシートを設定 var sh = spreadsheet.getSheets()[i-1]; //アクティブなスプレッドシートに存在するシートを、[i-1]により配列の要素数で指定して取得し、変数shに代入 // プログラム7|プログラム2で設定したシートを確認 for (var k=0; k<sheets.length; k++){ // プログラム8|shがプログラム2で設定した削除したくないシートかどうかを判別 if (sh.getName() == sheets[k]){ // プログラム9|flagをfalseに変更してプログラム7の繰り返しループから抜ける flag = false; break; } } // プログラム10|flagがtrueならshを削除 if (flag == true){ spreadsheet.deleteSheet(sh); } } } |
以下でプログラムを解説していきます。
プログラム0|スプレッドシート名の設定
1 2 |
function DeleteSheets() { } |
・プログラム名は「DeleteSheets()」
・「()」に記載がないため引数はなし
プログラム1|スプレッドシートの情報を取得
1 |
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); |
・変数supreadsheetに開いているスプレッドシートを設定
プログラム2|削除したくないシート名を配列で格納
1 |
var sheets = ['シート1','シート2']; |
・変数sheetsに削除したくないシート名を配列で入力
・今回は「シート1」と「シート2」を入力(この2つのシートは削除されない)
・「 var sheets = [‘シート1′,’シート2’, ‘商品A’]; 」とすることで「商品A」のシートも削除対象から除外される
プログラム3|スプレッドシートのシート数を取得
1 |
var sheetcount = spreadsheet.getNumSheets(); |
・プログラム1で設定したspreadsheet内のシート数を取得
・今回はシート数が8なので、sheetcount = 8(以下の画像)
プログラム4|スプレッドシートのシート数だけ繰り返す
1 2 |
for(var i = sheetcount; i > 1; i--){ } |
・すべてのシートの名前を確認
・今回は「シート数 = 8 」なので、「左から8番目のシート」,「左から7番目のシート」,・・・,「左から2番目のシート」と処理していく
・シートを全て削除するとエラーになるので、「左から1番目のシート」は繰り返しの対象にしない
プログラム5|flagをtrue設定
1 |
var flag = true; |
・変数flagにtrueを設定
・このflagがtrueの場合はシートを削除、falseの場合はシートはそのまま
プログラム6|変数shに一番右にあるシートを設定
1 |
var sh = spreadsheet.getSheets()[i-1]; |
・変数shにスプレッドシート上の一番右にあるシートを設定
・[i-1]とすることで、配列の要素数とシート番号のズレを解消できる(配列は0から開始)
プログラム7|プログラム2で設定したシートを確認
1 2 |
for (var k=0; k<sheets.length; k++){ } |
・プログラム2で設定したsheetsに該当するかどうかチェック
・今回はプログラム2で「シート1」と「シート2」を設定しているので、この2つのシートに該当するかチェック
プログラム8|shがプログラム2で設定した削除したくないシートかどうかを判別
1 2 |
if (sh.getName() == sheets[k]){ } |
・sh(プログラム6)とsheets(プログラム2)が一致するかどうか検証
・今回の事例では「シート1」か「シート2」であれば、シート削除の対象から除外
・一致すれば、プログラム9を実行
プログラム9|flagをfalseに変更してループから抜ける
1 2 |
flag = false; break; |
flag = false;
・flagをfalseに変更
・falseにすると、プログラム10でのシート削除に対象にならない
break;
・プログラム7の繰り返しループから抜ける
プログラム10|flagがtrueならshを削除
1 2 3 |
if (flag == true){ spreadsheet.deleteSheet(sh); } |
if (flag == true){
}
– flagがtrueだったら、{ } 内の以下のプログラムを実行
spreadsheet.deleteSheet(sh);
・sh(プログラム6で設定)をシート削除
プログラムの説明は以上です。
Google Apps Script(GAS)について詳しく理解したいなら
Google Apps Script(GAS)を活用すると、仕事を効率化できる幅を広げることができます。
たとえば私が実際にGASを活用して効率化してきた作業は以下の動画で解説しています。
動画を見てみると、あなたの仕事にどのようにGASを応用すればいいのかイメージが浮かぶこともあると思います。
ぜひご覧ください。
GASの使い方・始め方を知らない人にはこちらの記事・動画がオススメ
この機会に、「GASを使い方を知りたい」と思った人もいるかもしれません。
そのように感じている人は、ぜひ以下の記事をご覧ください。
10分程度でGoogle Apps Scriptを使うためのスタート地点に立てるように解説をしています。
GASで出来ることを知らない人はこちらの記事・動画がオススメ
GASの始め方を理解する前に、やっておくことがあります。
それは、GASを使って何ができるのかを理解しておくことです。
なぜならGASの使い所を知らないと、仕事で使えないからです。
仕事でどう活用するかをイメージしないまま学んでも、効果的な学習ができません。
そこで、このサイトでもいくつか事例を使って、GASの実践方法を紹介しています。
興味がある人は以下の記事もご覧ください。
オススメの書籍を紹介
書籍に関しては、以下を読んで購入しました。
GASの全体感をつかむには良いと思います。
ただし、実際の勉強は書籍よりもウェブサイトを活用してきました。
はっきり言って、ウェブサイトだけでも十分に勉強できるほど数多くの情報がアップされています。
書籍で全体感をつかんだら、ウェブサイトでの学習に切り替えたほうが良いのが私の考えです。
Googleスプレッドシートを効率的に操作したいなら
この記事ではGASを活用した仕事の効率化の事例を紹介してきました。
しかしGoogleスプレッドシートの仕事を早くすることを目指すなら、GAS以外の方法もあります。
たとえば、以下の方法です。
上記の内容については、以下の動画で紹介しています。
ぜひGoogleスプレッドシートを上手に扱えるようになりたい人はご覧いただきたいです。