
Visioって入力フォームみたいなのないの?

ユーザーフォームがあるよ

ユーザーフォームって何?どうやるの?

VBAに用意されている機能で、簡単にフォームを作ることができるんだ
入力フォームに入力されたテキストを使ってVBAを実行したい、条件などを付加したい、そんな時に便利なのがユーザーフォームです。ボタンを配置して複数のマクロを1つのフォームにまとめたいなんて時にも便利です。
エクセルやワードに入っているものと使い方はほぼ同じなので、何となくみたことがある方は簡単です。
1. ユーザーフォームとは?
ユーザーフォームを使うと、作業がすごく効率的になります。具体的にはこんなことができます!
- 複数の情報を一度に入力できる:複数の条件を設定して処理を行いたいときなどに便利
- 簡単に入力できる:テキストボックスやボタンを使って、簡単に情報を入力できる。
- マクロをボタン一つで実行:ボタンを配置すれば、押すだけで複雑な作業がすぐに終わる。

ボタンや入力欄は自由に配置が可能!自分好みにカスタマイズできるよ
2. ユーザーフォームの作り方
実際にユーザーフォームを作ってみましょう!Excelで使ったことがある方はほぼそのまま同じです。
手順1:ユーザーフォームを作成

まずは「挿入」→「ユーザーフォーム」を選び無地のフォームを表示させます。
手順2:ツールボックスからボタンやテキストボックスを配置

①ツールボックスの中のアイコンを選択(クリック)します。
②ユーザーフォーム上の置きたい範囲を指定すると、指定したサイズのコントロールが配置できます。
よく使うツールボックスの中身をご紹介します。
ラベル・・・ユーザーフォーム上に文字を表示します。
テキストボックス・・・文字を入れられる入力ボックスを配置します。
ボタン・・・コマンドボタンを配置、VBAを起動したりもできます。
ラジオボタン・・・選択用のラジオボタンを配置します。
コンボボックス・・・テストボックスとリストボックスを組み合わせたようなヤツ。
手順3:名前を変更

この後コマンドを登録したり、VBAで指定したりしますが名前が分からないと困りますね。
名前はプロパティを見ると分かります。
①ボタンを右クリック
②出てきたメニューからプロパティを選択
③プロパティが表示されるので、お好みで変更します。
オブジェクト名:コントロール(この場合はボタン)の名前
Caption:ボタンの上に表示される文字
BackColor:ボタンの色
等々
手順4:コードを追加

配置したテキストボックスやボタンにはコードを登録することができます。
このボタンをダブルクリックすると、エディタが開いてコードを書くことができます。
手順5:ユーザーフォームを表示

作成したユーザーフォームは表示した状態で実行ボタンを押しても起動しますし、以下のコードでも表示させることもできます。
vbaコピーする編集するSub ShowUserForm()
UserForm1.Show
End Sub
Sample
図形を選択してコマンドボタンをクリックすると、テキストボックスに入力した名前が図形に反映されるというサンプルコードです。
ユーザーフォームの設定

上記のように、ユーザーフォームにボタンとテキストボックスを配置しました。
名前の設定
プロパティから配置したボタンとテキストボックスの名前を以下のように設定します。
テキストボックス:txtInput
ボタン:cmdOK
Sampleコード
Private Sub cmdOK_Click()
Dim shp As Visio.Shape
Set shp = ActiveWindow.Selection.PrimaryItem
If Not shp Is Nothing Then
shp.Text = txtInput.Text
End If
Unload Me
End Sub
コマンドボタンをダブルクリックしてこちらのコードを貼ります。
実行結果


これで、図形に簡単にテキストが入力できるね!
3. まとめ
ユーザーフォームを使うと、Visioの作業がとっても簡単になります。自由にボタンや入力欄を配置して、作業をもっと効率よく進められるようになります。
次回は「ユーザーフォームを透明にする方法」について紹介する予定!ぜひブログの他の記事もチェックしてみてね😊