shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【PowerShell】簡易な入力フォームの作成事例

PowerShellでGUI(Graphical User Interface)を使った簡易な入力フォームとして、

✅ InputBox を使ったシンプルな入力
✅ Windows Forms を使ったカスタマイズ可能なフォーム

の作成事例です。

内容:

なお、動作確認はWindows PowerShell 5.1です。

方法①:InputBox を使った簡単な入力フォーム

入力欄とOKボタン、キャンセルボタンがあるシンプルなフォーム

InputBox を使った簡単な入力フォームのイメージ
特徴
  • シンプルで、1行でGUI入力ができる
  • Windows標準の.NETライブラリを使用
サンプルコード

次のとおりです。

# .NETのWindows Formsライブラリをロード
Add-Type -AssemblyName Microsoft.VisualBasic

# 入力ボックスを表示
$inputValue = [Microsoft.VisualBasic.Interaction]::InputBox("名前を入力してください", "入力ボックス", "デフォルト値")

# 入力された値を表示
Write-Host "入力された値: $inputValue"  

Read-Host "`nすべての処理が完了しました。ウィンドウを閉じるには Enter キーを押してください。"

方法②:Windows Forms を使ったカスタム入力フォーム

入力欄とOKボタンがあるシンプルなフォーム

Windows Forms を使ったカスタム入力フォームのイメージ
特徴
  • 入力欄やボタンを自由に配置可能
  • 複数項目の入力にも対応
サンプルコード
# Windows Forms ライブラリをロード(GUI機能を使うため)
Add-Type -AssemblyName System.Windows.Forms

# フォーム(ウィンドウ)を作成
$form = New-Object Windows.Forms.Form
$form.Text = "入力フォーム"       # ウィンドウのタイトル
$form.Width = 300                 # ウィンドウの幅
$form.Height = 150                # ウィンドウの高さ

# テキストボックス(入力欄)を作成
$textBox = New-Object Windows.Forms.TextBox
$textBox.Width = 200             # 入力欄の幅
$textBox.Location = '50,30'      # 入力欄の位置(X=50, Y=30)
$form.Controls.Add($textBox)     # フォームに追加

# OKボタンを作成
$okButton = New-Object Windows.Forms.Button
$okButton.Text = "OK"            # ボタンに表示する文字
$okButton.Location = '100,70'    # ボタンの位置
$okButton.Add_Click({ $form.Close() })  # ボタンがクリックされたらフォームを閉じる
$form.Controls.Add($okButton)    # フォームに追加

# フォームを表示(モーダル表示)
$form.ShowDialog() | Out-Null

# 入力された値を取得
$userInput = $textBox.Text

# 入力された値を表示
Write-Host "入力された値: $userInput"

方法の比較

それぞれの特徴をまとめると次のとおりです。

比較項目 InputBox Windows Forms
実装の簡単さ ◎(1行) △(複数行)
カスタマイズ性 △(固定) ◎(自由自在)
複数入力欄 ×
初心者向け
 

以上、PowerShellで簡易な入力フォームの作成事例でした。