Docly Child

シートのコピーを作成する

407 views

この記事では、GoogleSpreadSheetを別のシートにコピーする方法をご紹介します。
例えば、ワークフロー内で新規のスプレッドシートを作成したり、シートを追加した際にも、あらかじめ書式設定をしたシートを用意しておきコピーすることで、新しいシートにも書式設定を適応することが可能となります。

【できるようになること】
・DuplicateSheetアクションの操作
・スプレッドシートの書式設定を保ったままコピー
・電話番号列などにおける先頭の0落ち回避

※ご注意※

この記事はGoogleSpreadSheetに限った処理方法であり、ExcelやExcelOnlineには2023年4月12日現在対応していません。

 DuplicateSheet

スプレッドシートをコピーするには、Google Spreadsheetカテゴリの「DuplicateSheet」アクションを使用します。
このアクションを使用することにより、コピー元シートの書式設定をコピー先のシートにも引き継いだ状態で複製することが可能です。

 

 アクションのプルダウンを押下して詳細設定を開き、各項目を設定します。上2つがコピー元になるシートの情報、下2つがコピー先になるシートの情報です。ワークフロー内でこのアクション以前にスプレッドシートやシートの情報を取得している場合は、そのアウトプットも再利用できます。

 ワークフローの設定例

今回は、ワークフロー内で新規に作成したスプレッドシートA(転記用)に、既存のスプレッドシートB(参照用)の中にある書式設定が適用済みのシートをコピーする例をご紹介します。

既にコネクションを登録済みの場合、こちらの手順は省略してください。

・GoogleSpreadsheetのコネクションを登録します。
・登録方法はこちらをご参照ください

 

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から始まる文字列を入力する列にあらかじめ「書式なしテキスト」の設定を適用しておくという方法があります。
書式なしテキストは以下の手順で特定の列に設定することができます。

この状態で先程の数字列を入力しても、0は消えないまま残っていることが確認できます。
また、例えばワークフロー内でCreateSpreadSheetやAppendSheetといったアクションを使い、新規のシート(コピー先)を作成した際は、DuplicateSheetを利用することによりそれらに手動で書式設定をする必要なくシートのコピー&ペーストを行うことができます。
[参考記事]
<DulicateSheet>シートの複製

このページは役に立ちましたか?