Excelのテーブルのデータ範囲を削除する

PowerAutomateDesktopでテーブル機能のデータ範囲のみを一括削除を行う方法

Excel.LaunchExcel.LaunchAndOpen Path: $'''対象ファイルの絶対パス''' Visible: True ReadOnly: False LoadAddInsAndMacros: False Instance=> ExcelInstance
Excel.GetFirstFreeColumnRow Instance: ExcelInstance FirstFreeColumn=> FirstFreeColumn FirstFreeRow=> FirstFreeRow
IF FirstFreeRow > 2 THEN
    Variables.DecreaseVariable Value: FirstFreeColumn DecrementValue: 1 DecreasedValue=> FirstFreeColumn
    Variables.DecreaseVariable Value: FirstFreeRow DecrementValue: 2 DecreasedValue=> FirstFreeRow
    Excel.DeleteCells.DeleteCells Instance: ExcelInstance StartColumn: 1 StartRow: 3 EndColumn: FirstFreeColumn EndRow: FirstFreeRow ShiftCellsDirection: Excel.ShiftCellsDirection.Up
END
Excel.CloseExcel.CloseAndSave Instance: ExcelInstance

対象ファイルの絶対パスを修正してください

PowerAutomateDesktopにはテーブル範囲を取得するアクションはありません
通常のセル範囲と同じように取得を行う必要があります
しかし、テーブル機能は通常のセル範囲と同様に扱えないことが多くあります
そのひとつが削除操作になります

テーブル機能の範囲をうまく取得せずに削除を行おうとするとエラーとなります
削除前に少し手間をかける必要があります

実際のフロー

画像のようにフローを組むとテーブル機能のデータ範囲を削除することが可能となります
実際の削除に必要となる手順としては2~7行目のアクションになります
1・8行目はExcelの起動と終了なので割愛します

まず2行目はアクティブシートの行と列の最初の空白の位置を取得します
ここで注意したいのがデータの無い行列を取得する点です

VBAのLastCellのような使用済みの最終セルの外側になります
さらにAutomateではテーブル機能の判別が出来ないので、テーブルの外側に入力値があった場合はテーブル範囲を超えてしまうため、削除アクションでエラーとなります
あくまでもテーブル機能の範囲のみのシートに対して有効ということになります
ただテーブル範囲より上の行や左の列であれば、削除範囲の始点を変更すれば対応可能です

3行目はIF分岐になります
データ範囲が存在しなければエラーとなってしまうので、見出し範囲と同じ行数であれば処理は行いません

4行目・5行目では取得した最終列・行数値を1減らしています
これは前述のとおり、ここで取得されるのはデータの最終セルではなくその1つ外側になっているので削除対象範囲がそれぞれ1を引いた数値となります
これをしていないとテーブル機能の場合はエラーになってしまうので重要になってきます
ただのセル範囲であれば気にしなくて大丈夫です

6行目で実際に削除を行います
開始の行列に関しては決め打ちで問題ありません
終点については取得・計算した列・行数値を使用します
このアクションを行うことでテーブルのデータ範囲を一括で削除出来ます

ちなみに、テーブル機能には集計行というデータ範囲外の行を作成することが出来ます
画像と同じアクションではその集計行まで削除を行ってしまいます
集計行を作成している場合は、5行目の行数値の減算数値を1から2に変更することでうまくデータ範囲だけを指定することが出来るようになります

まだまだ思い通りの動きをさせようと思うと回りくどいフローになってしまうことが多いですが、最悪VBAを作成してそれを実行しても良いです
処理速度は圧倒的に早いですしね
ただ、今回のような処理であればインスタンス表示を無くせば完全バックグラウンド処理に出来るのでその点を考慮すると処理時間はVBAほど考慮しなくても良いですね