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

記事内に広告が含まれています。

PowerShellによって図形のテキストボックスの値を設定するコードを中々見つけられません。

自力でサンプルコードを作ってみました。

仕様

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

Excelファイルの中にいくつかテキストボックスを配置して、初期値として適当な値が記載されている状態にします。

PowerShellのScriptによってこれらのテキストボックスのテキスト値を変更してみます。

ソースコード

Excelファイルを1ファイル読み取って、図形を1つずつループで取得し、テキストを1つ1つ書き換えていきます。

ここでは“図形の値”という文字列と、1からの連番をテキストボックスへ格納します。

changeExcelTextBox.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 = "図形の値" + $i
    $sheet.Shapes($i).TextFrame().Characters().Text = $text  # 図形に値を設定
}
[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

テスト実行

実行前

先ほど説明の通り、実行前は適当な値がテキストボックスに入力されています。

Excelの状態を確認できたらファイルは閉じます。

それから下記の通り「changeExcelTextBox.ps1」を選択して、右クリックメニューから「PowerShellで実行」をクリックします。

すると、下記のようにPowerShellの実行が確認できます。

実行後

では実行が終わったので、「Book1.xlsx」のExcelファイルを再度開きます。

すると、下記の通り、テキストボックスの値が、「図形の値」の文字列+連番で書き換わっていることが確認できました。

参考情報

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

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

以上です。

コメント

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