この記事では、PowerShellでユーザーフォームを作成する方法について説明します。
PowerShellでユーザーフォームを作成する
PowerShellを使用してユーザーフォームを作成する基本的な手順です。
1.必要なアセンブリの読み込み
PowerShellでWindowsフォームを作成するには、System.Windows.Formsアセンブリを読み込みます。
Add-Type -AssemblyName System.Windows.Forms
2.フォームの作成
フォームを作成します。
# フォームを作成 $mainForm = New-Object Windows.Forms.Form $mainForm.Text = "PowerShellユーザーフォーム" $mainForm.Size = New-Object Drawing.Size(400, 200)
このコードでは、フォームのタイトル”PowerShellユーザーフォーム”を設定し、サイズを指定しています。
3.コントロールの追加
フォームにコントロールを追加します。今回は、ラベルとボタンをフォームに追加します。
# ラベルを作成
$label = New-Object Windows.Forms.Label
$label.Text = "ラベルです"
$label.Location = New-Object Drawing.Point(10, 10)
# ラベルをフォームに追加
$mainForm.Controls.Add($label)
# ボタンを作成
$button = New-Object Windows.Forms.Button
$button.Text = "クリック"
$button.Location = New-Object Drawing.Point(10, 40)
# ボタンがクリックされたときのアクションを定義
$button.Add_Click({
$label.Text = "ボタンクリック!"
})
# ボタンをフォームに追加
$mainForm.Controls.Add($button)
ボタンのクリックイベントハンドラを追加して、ボタンがクリックされたときにラベルのテキストを変更するアクションを設定しています。
4.フォームの表示
フォームを表示します。
$mainForm.ShowDialog()
フォームが表示され、ユーザーアクションを待ちます。
ユーザーがフォームを閉じると、スクリプトは再開されます。
5.フォームの解放
フォームが不要になったら、解放してリソースを解放する必要があります。
$mainForm.Dispose()
これにより、フォームがメモリから解放されます。
完全なコード
ユーザーフォームを作成する一連の処理は以下のように記述することができます。
# 必要なアセンブリを読み込む
Add-Type -AssemblyName System.Windows.Forms
# フォームを作成
$mainForm = New-Object Windows.Forms.Form
$mainForm.Text = "PowerShellユーザーフォーム"
$mainForm.Size = New-Object Drawing.Size(400, 200)
# ラベルを作成
$label = New-Object Windows.Forms.Label
$label.Text = "ラベルです"
$label.Location = New-Object Drawing.Point(10, 10)
# ラベルをフォームに追加
$mainForm.Controls.Add($label)
# ボタンを作成
$button = New-Object Windows.Forms.Button
$button.Text = "クリック"
$button.Location = New-Object Drawing.Point(10, 40)
# ボタンがクリックされたときのアクションを定義
$button.Add_Click({
$label.Text = "ボタンクリック!"
})
# ボタンをフォームに追加
$mainForm.Controls.Add($button)
# フォームを表示
$mainForm.ShowDialog()
# スクリプトの実行が終了したらフォームを解放
$mainForm.Dispose()
実行すると以下の画面が表示されます。

ボタンをクリックすると、ラベルの文字が変更され、以下の画面になります。

まとめ
今回は、PowerShellで基本的なユーザーフォームを作成し、そのフォームにラベルとボタンを配置してました。
ボタンがクリックされたときにラベルのテキストを変更する簡単な例です。
フォームを閉じるときは、Dispose メソッドを使用してフォームを解放します。
さらに高度なユーザーフォームを作成するには、さまざまなコントロールやイベントハンドラを追加できます。

