0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

納品前のExcelバッチ(A1、100%、非表示・フィルター解除)

Last updated at Posted at 2024-12-13
1 / 6

はじめに

参画プロジェクトによっては、求められることのある納品時の面倒な作業をダブルクリックで済むようにしました。

Qiitaで既出のA1セルで表示倍率100%以外にも必要な要件があったので備忘録として投稿します。VBAでも良かったのですが実装と実行ともに手数が多い上に、サイズも大きくなってしまうので今回はPowerShellで操作するようにしています。
メモ帳とPowerShell実行環境があれば完結します。


概要

フォルダに格納された複数エクセルファイルのすべてのシートに対して下記の処理を実行します。

・グループ化機能で設定した非表示セルの再表示
・フィルターの絞り込み結果のクリア(全表示)
・表示倍率を100%に設定
・A1セルを選択
・変更の保存


1. 処理の実装(PowerShell)

deliverablesPreparation.ps1
$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $true
$Excel.DisplayAlerts = $false
$folderPath = Get-Location
$files = Get-ChildItem -Path $folderPath -Filter "*.xlsx"

foreach($file in $files) {
    $workbook = $Excel.Workbooks.Open($file.FullName)

    foreach($worksheet in $workbook.Sheets) {
        $worksheet.Rows.Hidden = $false
        $worksheet.Columns.Hidden = $false

        if($worksheet.AutoFilterMode) {
            $worksheet.AutoFilter.ShowAllData()
        }
        
        $worksheet.Activate()
        $Excel.ActiveWindow.Zoom = 100
        $worksheet.Range("A1").Select()
    }

    $sheetOne = $workbook.Sheets.Item(1)
    $sheetOne.Select()
    $sheetOne.Range("A1").Select()
    $workbook.Close($true)
}
$Excel.Quit()

[System.Runtime.InteropServices.Marshal]::ReleaseComObject($Excel) | Out-Null

2. 実行ファイル作成(bat)

エクセル仕上げ.bat
powershell -NoProfile -ExecutionPolicy Unrestricted ./deliverablesPreparation.ps1
exit

3. 実行方法

①下記3種類のファイルを同じフォルダに格納する。
 ・実行対象のエクセルファイル.xlsx
 ・deliverablesPreparation.ps1
 ・エクセル仕上げ.bat

②エクセル仕上げ.batをダブルクリック
③エクセルファイルがすべて閉じられたら処理完了

ご活用の際は自己責任でお願いします。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?