#author("2025-01-09T13:45:45+09:00","default:nobuoki","nobuoki")
#author("2025-01-09T13:46:04+09:00","default:nobuoki","nobuoki")
* 手動でコピー [#w745394b]

- Excel でファイル開く
- Alt-F11 > Ctrl-G
- イミディエイトウィンドウで実行: For Each i In ThisWorkbook.Sheets: debug.print i.name : next i
- 結果をコピペ

IMEの辞書に適当な読み方(例 ;えく、;まくろ、をえくせる)で

For Each i In ThisWorkbook.Sheets: debug.print i.name : next i
> For Each i In ThisWorkbook.Sheets: debug.print i.name : next i

を登録しておくとラクです

** 参考 [#l275a9c0]

- [[超簡単!エクセルのシート一覧から一発表示させるテク!>https://excel-doctor.jp/sheet-list/]]


* 別解 [#x2a292d2]

powershell で取得

#prism(batchfile){{{
C:\> pwsh Get-SheetNames.ps1 some.xlsx
シート名をクリップボードにコピーしました。
}}}


Get-SheetNames.ps1

#prism(powershell){{{
# ファイル名: Get-SheetNames.ps1

param (
    [string]$ExcelFile
)

if (-not $ExcelFile) {
    Write-Host "Excelファイルをドラッグ&ドロップしてください。" -ForegroundColor Yellow
    pause
    exit
}

# Excelファイルの存在確認
if (-not (Test-Path $ExcelFile)) {
    Write-Host "指定されたExcelファイルが見つかりません。" -ForegroundColor Red
    exit
}

# Excelアプリケーションを作成
$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $false
$Workbook = $null

try {
    # Excelファイルを開く
    $Workbook = $Excel.Workbooks.Open($ExcelFile)

    # シート名を取得
    $SheetNames = @()
    foreach ($Sheet in $Workbook.Sheets) {
        $SheetNames += $Sheet.Name
    }

    # シート名を改行で結合
    $SheetNamesText = $SheetNames -join "`r`n"

    # クリップボードにコピー
    Set-Clipboard -Value $SheetNamesText

    Write-Host "シート名をクリップボードにコピーしました。" -ForegroundColor Green
} catch {
    Write-Host "エラーが発生しました: $($_.Exception.Message)" -ForegroundColor Red
} finally {
    # リソース解放
    if ($Workbook) { $Workbook.Close($false) }
    $Excel.Quit()
    [System.Runtime.Interopservices.Marshal]::ReleaseComObject($Excel) | Out-Null
    Remove-Variable -Name Excel
}
}}}

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS