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. | 環境 | バージョン |
---|---|---|
1 | OS | Windows10 |
2 | PowerShell | 5.1 |
以上です。
コメント