シートのコピーを作成する
この記事では、GoogleSpreadSheetを別のシートにコピーする方法をご紹介します。
例えば、ワークフロー内で新規のスプレッドシートを作成したり、シートを追加した際にも、あらかじめ書式設定をしたシートを用意しておきコピーすることで、新しいシートにも書式設定を適応することが可能となります。
【できるようになること】
・DuplicateSheetアクションの操作
・スプレッドシートの書式設定を保ったままコピー
・電話番号列などにおける先頭の0落ち回避
この記事はGoogleSpreadSheetに限った処理方法であり、ExcelやExcelOnlineには2023年4月12日現在対応していません。
DuplicateSheet
ワークフローの設定例
今回は、ワークフロー内で新規に作成したスプレッドシートA(転記用)に、既存のスプレッドシートB(参照用)の中にある書式設定が適用済みのシートをコピーする例をご紹介します。
CreateSpreadsheetアクションを使い、新規スプレッドシートを作成します。ここではサンプルとして「転記用スプシ」という名前のスプレッドシートを作っています。
実行すると、自分のGoogleSpreadSheetアプリ内に新しくスプレッドシートが作られます。これをコピー先のスプレッドシートとします。
次はGetSpreadSheetアクションを使ってコピー元となるスプレッドシートを取得します。ここではサンプルとして「参照用スプシ」の「登録情報」というシートを使用しています。このシートはあらかじめ、電話番号が記載されているD列にのみ「書式なしテキスト」を適用しておいた状態です。
1.と同じように右側のマークから自分のアカウントを選び、スプレッドシートのIDを貼り付けます。
DuplicateSheetを設置し、プルダウンメニューを開いて各項目を設定します。
①コピー元のスプレッドシートを指定します。get_spreadsheet_1のアウトプットが再利用できます。
②コピー元のシート名を指定します。ここでは「登録情報」シートです。
③コピー先のスプレッドシートを指定します。create_spreadsheet_1のアウトプットが再利用できます。
④コピー先のシート名を決めることができます。ここでは新たに「登録者リスト」というシートを作成していますが、無記入でもデフォルト名がつきます。
ワークフローの設定は以上で完了です。
# スプレッドシートを作成_転記用スプシ +create_spreadsheet_1: action>: CreateSpreadsheet title: '転記用スプシ' provider: '' private: false # 既存のスプレッドシートを取得_参照用スプシ +get_spreadsheet_1: action>: GetSpreadsheet provider: '' spreadsheet_id: '' private: false # シートをコピー_参照用から転記用へ +duplicate_sheet_1: action>: DuplicateSheet source: +get_spreadsheet_1 sheet: '登録情報' destination: +create_spreadsheet_1 as: '登録者リスト' private: false
補足:0落ちへの対応
電話番号のような先頭が0から始まる文字列をコピー&ペーストなどで入力すると、このように0が勝手に消去されてしまうことがあります。これを0落ちといいます。
これを防ぐには、先頭が0から始まる文字列を入力する列にあらかじめ「書式なしテキスト」の設定を適用しておくという方法があります。
書式なしテキストは以下の手順で特定の列に設定することができます。
また、例えばワークフロー内でCreateSpreadSheetやAppendSheetといったアクションを使い、新規のシート(コピー先)を作成した際は、DuplicateSheetを利用することによりそれらに手動で書式設定をする必要なくシートのコピー&ペーストを行うことができます。