PowerShellによってExcelのテキストボックスの値を取得するサンプルコード

記事内に広告が含まれています。
《スポンサーリンク(広告)》

※エンジニアは英語必須!業界初の定額レッスン無制限!オンラインで英語を学習しませんか?

《スポンサーリンク(広告)》

PowerShellによってExcelの図形のテキストの値を取得するコードが、Web上になかなか見つからなかったので、サンプルコードを作ってみました。

《スポンサーリンク(広告)》

coconalaはロゴデザイン、Webマーケティング、副業のあらゆるスキルのマーケットです(ビジネス・個人問わないサービス)

《スポンサーリンク(広告)》

仕様

下記のようなPowerShellのScriptファイル(*.ps1)と、読み込む先のExcelファイルを用意します。

Excelファイルの中には、いくつかテキストボックスを配置して、その中にテキストを記述しています。

これらのテキスト値を抽出し、PowerShellのコンソールに出力しようと思います。

(ちなみにA1セルの値は意味はないです)

ソースコード

Excelファイルを1ファイル読み取って、図形を1つずつループで取得し、テキストをコンソール出力します。

基本的にはPowerShellで記述する場合もVBAで記述する場合も一緒なのですが、細部がPowerShell仕様なので注意が必要です。

readExcelTextBox.ps1

$excel = New-Object -ComObject Excel.Application
$book = $null
$excel.Visible = $false
$excel.DisplayAlerts = $false
$fileName  = "Book1.xlsx"
$filePath = (Convert-Path .) + "/" + $fileName
$book = $excel.Workbooks.Open($filePath)
$sheet = $book.Sheets("Sheet1")
# 図形の数だけ繰り返し
for ($i=1; $i -le $sheet.Shapes.Count; $i++){
    $text = $sheet.Shapes($i).TextFrame().Characters().Text #図形のテキストを抽出
    Write-Host ("テキストボックス値:" + $text)
}
Write-Host ("")
[void]$book.Save()
[void]$book.Close($false)
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($book)
[void]$excel.Quit()
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)
Pause

テスト実行

「readExcelTextBox.ps1」を選択して、右クリックメニューから「PowerShellで実行」をクリックします。

このようにテキストボックスの値がコンソールに全て出力されたことを確認しました。

参考情報

下記の環境で作成・実行しております。

No.環境バージョン
1OSWindows10
2PowerShell5.1
環境一覧

以上です。

コメント

タイトルとURLをコピーしました