Docly Child

表計算アプリで末尾の行に値を追加する

280 views

このページでは、以下の各種表計算アプリで末尾の行に値を追加する設定方法をご紹介します。

  • Spreadsheet
  • ExcelOnline
  • Excel

AUTOROでの各表計算アプリの基本的な操作方法については、下記ページからそれぞれご覧ください。

表計算アプリ操作


 「末尾」、「末尾に値を追加」とは何か

この記事での末尾とは、「あるシートのうち、データが入っている最終行」を表します。

画像のような表のデータがあった場合、末尾は「4行目」となります。

このシートで「末尾に値を追加する」とは「5行目に値を書き込む」ことを意味します。

このようなシートを使用する場合、データを5行目から書き込んでいく(末尾に値を追加)ケースが非常によくあります。

しかし、シートの行数(=末尾の行番号)が変動する都合上、セルの値を更新アクションの書き込み開始位置を、シート1!A2のように固定することができません。

よって、末尾に値を追加していく場合は、「シートのどこから書き込むか?」をロボットに教える必要があります。

 

 

 ワークフローの設定例

Spreadsheetで末尾に値を追加する方法のうち、AppendValuesアクション(末尾に値を追加)を使用する方法をご紹介します。

    •  Spreadsheetの欄には、GetSpreadsheet(既存のスプレッドシートを取得)で、取得したスプレッドシートのアウトプットを設定します。
    • 範囲欄には、シート名!値を追加したい列のアルファベット1:値を追加したい列のアルファベットを記載します。
      • 例: シート1:A1:A
    • 値の欄には、書き込みたい値を設定します。

AppendValuesアクションは、指定した範囲を含む表の直後に値を追加するアクションです。

注意点として、空行や空列がある場合などの表の形が整っていない場合はうまく動作しない可能性がございます。

このようなシートである場合は、後述の「GetBlankRowsアクション」を使用する方法が有効です。

詳細についてはAppendValuesの挙動についてをご覧ください。

Spreadsheetで末尾に値を追加する方法のうち、GetBlankRowsアクション(空行を取得)を使用する方法をご紹介します。

    • Spreadsheetの欄にGetSpreadsheetアクション(既存のスプレッドシートを取得)で、取得したスプレッドシートのアウトプットを設定します。
    • 範囲の欄に、空行を取得したい範囲をシート名!範囲でを設定します。
      • 設定範囲はA1:A10000など、終わりの範囲まで含める必要があります。
    • 「範囲内の空行をすべて取得する」を無効にします。
    • GetBlankRowsアクションのアウトプットをUpdateCellsアクション(セルの値を更新)の範囲に設定します。

GetBlankRowsアクションの「範囲内の空行を全て取得する」を無効にすると、指定した範囲の最初の空行を取得することができます。

これをUpdateCellsアクションの範囲に設定すると、末尾に値を追加するような運用ができます。

AppendValuesアクションと比べると、アクション数は増えますが、特定の列の末尾に追加するなどの拡張性の高い運用が可能です。

EXCELOnlineで末尾の行に値を追加する方法をご紹介します。

  • GetWorkbookアクション(ワークブックを取得)でワークブックを取得します。

    • プロバイダーID欄には、OneDriveのコネクションを設定します。
    • ワークブックID欄には、右側のOneDriveのマークから選択、もしくはURLを設定します。
  • GetWorksheetBlankRowsアクション(空行を取得)を設定します。
    • ワークブック欄には、GetWorkbookアクションのアウトプットを設定します。
    • 範囲欄には、末尾に値を追加したい表が含まれる列を指定します。
    • 「範囲内の空行を全て取得する」の設定を無効に設定します。
  • UpdateWorksheetCellsアクション(セルの値を更新する)を設置します。
    • ワークブック欄には、GetWorkbookアクションのアウトプットを設定します。
    • 範囲欄には、GetWorksheetBlankRowsアクションのアウトプットを設定します。
    • 値欄には、書き込みたい値を設定します。

GetWorksheetBlankRowsアクションの「範囲内の空行を全て取得する」を無効にすると、指定した範囲の最初の空行の範囲を取得します。

その為、UpdateWorksheetCellsアクションの範囲にアウトプットを指定すると、末尾に値を追加することができます。

EXCELで末尾に値を追加する方法は以下の通りです。

  • GetFileアクション(ファイルを取得)を用いて、クラウドストレージに保存されているEXCELファイルを取得します。
    • ストレージプロバイダ欄には、EXCELファイルが保存されているストレージを設定します。
    • ファイル欄には、EXCELファイルを選択します。
  • SelectSheetアクション(ワークシートを選択)で、操作したいワークシートを設定します。
    • エクセルファイル名欄には、GetFileアクションのアウトプットを設定します。
    • ワークシート名欄には、シート名を設定します。
  • ReadRangeアクション(範囲を読み込む)で、末尾に貼り付けたい表の範囲を全て取得します
    • ワークシート名欄には、SelectSheetアクションのアウトプットを設定します。
    • 範囲欄には、末尾を追加したい表の範囲の列を選択します。(例 A1:A)

  •  取得した値をStoreValueアクション(変数に保存)で、変数に保存します。
    •  変数に保存したデータの長さ(行数)を変数名.lengthで測り、長さ(行数)を+1します。
      • ${変数名.length +1}

 

※lengthは配列の要素数を取得することができます。要素数+1とすることで、取得したデータの一つ下の場所を数字で指定することができます。

 
  • EXCELに値を書き込みます
    • WriteRangeアクション(範囲に書き込む)を設定して、値を書き込みます。
      • 2次元配列の欄には、書き込む値を設定します。
      • 書き込み位置のセルラベル欄には、書き込みたい場所のセルラベル(列アルファベットと行番号)を記述します。列番号は直接書き込み、行番号には、先ほど${変数名.length +1}で定義した変数を使用します。
        • 例 A${length +1の変数名}
    • 最後にSaveFileアクション(ファイルを保存)で、EXCELファイルを保存します。
      • ストレージプロバイダ欄には、保存したいストレージを設定します。
      • ファイル欄には、最初のGetFileアクションのアウトプットを設定します。

 

・ AppendValues

今回書き込むスプレッドシートです。

 

そのまま書き込みができています。

 

・GetBlankRows

今回書き込みたいスプレッドシートです。

空行が取得できています。

スプレッドシートに正常に書き込みがされていました。

・AppendValues

# リストを作成 書き込む値を作成
+create_list_1:
  action>: CreateList
  items: ["test1","test2","test3"]
  private: false

# 既存のスプレッドシートを取得
+get_spreadsheet_1:
  action>: GetSpreadsheet
  provider: ''
  spreadsheet_id: ''
  private: false
  meta:
    display: null

# 末尾に値を追加
+append_values_1:
  action>: AppendValues
  spreadsheet: +get_spreadsheet_1
  range: 'シート名!範囲'
  values: +create_list_1
  private: false

・GetBlankRows

# リストを作成 書き込む値を作成
+create_list_1:
  action>: CreateList
  items: ["test1","test2","test3"]
  private: false

# 既存のスプレッドシートを取得
+get_spreadsheet_1:
  action>: GetSpreadsheet
  provider: ''
  spreadsheet_id: ''
  private: false
  meta:
    display:

# 空行を取得 末尾に書き込みたいシートを指定
+get_blank_rows_1:
  action>: GetBlankRows
  spreadsheet: +get_spreadsheet_1
  range: 'testシート!A1:A10000'
  findAll: false
  private: false

# セルの値を更新 
+update_cells_1:
  action>: UpdateCells
  spreadsheet: +get_spreadsheet_1
  range: +get_blank_rows_1
  values: +create_list_1
  private: false

今回貼り付けたいExcel

 

Excelからデータを取得後、空行の3が取れています。

 

 

保存後のExcelファイルを見ると、値が書き込まれています。

 

# リストを作成 書き込む値を作成
+create_list_1:
  action>: CreateList
  items: ["test1","test2","test3"]
  private: false

# ファイルを取得 エクセルファイルを取得
+get_file_1:
  action>: GetFile
  provider: ''
  filename: ''
  private: false
  meta:
    display:

# ワークシートを選択
+select_sheet_1:
  action>: SelectSheet
  filename: +get_file_1
  sheetname: Sheet1
  private: false

# 範囲を読み込む 書き込まれているデータを取得
+read_range_1:
  action>: ReadRange
  worksheet: +select_sheet_1
  range: 'A1:A'
  private: false

# 変数に保存 エクセルのデータ
+store_value_1:
  action>: StoreValue
  key: row
  value: +read_range_1
  private: false

# 変数に保存 書き込まれているデータの範囲+1をする
+store_value_2:
  action>: StoreValue
  key: excelrange
  value: ${row.length + 1}
  private: false

# 範囲に書き込む 末尾に貼り付け
+write_range_1:
  action>: WriteRange
  worksheet: +select_sheet_1
  table: +create_list_1
  celllabel: 'A${excelrange}'
  private: false

# ファイルを保存
+save_file_1:
  action>: SaveFile
  provider: ''
  filename: +get_file_1
  directory: '/'
  createPath: false
  private: false
  meta:
    display:

今回貼り付けたいExcel

 

空行である範囲A3:C3が取得できています。

 

 

末尾であるA3:C3に値が書き込まれました。

 

# リストを作成 書き込む値
+create_list_1:
  action>: CreateList
  items: ["test1","test2","test3"]
  private: false

# ワークブックを取得 書き込みたいシートを書き込み
+get_workbook_1:
  action>: GetWorkbook
  provider: ''
  workbook_id: ''
  private: false
  meta:
    display:

# 空行を取得 末尾を探したい範囲を指定する
+get_worksheet_blank_rows_1:
  action>: GetWorksheetBlankRows
  workbook: +get_workbook_1
  range: 'シート名!範囲'
  findAll: false
  private: false

# セルの値を更新する 値を書き込み
+update_worksheet_cells_1:
  action>: UpdateWorksheetCells
  workbook: +get_workbook_1
  range: +get_worksheet_blank_rows_1
  values: +create_list_1
  private: false
<Excel>エクセル <spreadsheet>スプレッドシート/スプシ <ExcelOnline>エクセルオンライン セル 貼り付け コピー&ペースト コピペ 行追加

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