- 1. 概要
- 2. 操作
- 3. 参考サイト
1. 概要
前ページでは、大量のシートが存在する、ブック内で、シート間を簡単に移動する方法について記述しましたが。
シートの一覧が欲しいとき、どうするか・・・。
「PowerShell」を使用する方法があります。
実は、これ、面倒なので、あまりお勧めではありません。
2. 操作
まず、この操作を行う場合は、対象の「Excel」ファイルは閉じておいてください。
その上で、「PowerShell」を起動して、下記のコマンドを実行します。
(ドライブ名、パス、ファイル名は実際のものをいれます)
$path = "C:\パス\ファイル名.xlsx"
[System.Reflection.Assembly]::LoadWithPartialName("System.IO.Compression") | Out-Null
$stream = [System.IO.File]::OpenRead($path)
$archive = New-Object System.IO.Compression.ZipArchive($stream)
$entry = $archive.Entries | Where-Object { $_.FullName -eq "xl/workbook.xml" }
$entryStream = $entry.Open()
$reader = New-Object System.IO.StreamReader($entryStream)
$xmlText = $reader.ReadToEnd()
$reader.Close(); $entryStream.Close(); $archive.Dispose(); $stream.Close()
[regex]::Matches($xmlText, 'name="([^"]+)"') | ForEach-Object { $_.Groups[1].Value }
これ、なにをやっているかというと。
「Excel」の中身は、現在(2026年5月27日時点)、「.xml」になっています。
その「.xml」から、「name」属性を正規表現で全抽出しているようです。
なので、シート名以外に、「name」属性のあるものは出力されちゃいますので、ご注意。
出力されたものを、選択して、Enter すれば、クリップボードにとることができます。
3. 参考サイト
本ページは、「Gemini」伍長を参考にさせていただきました。
|
|