見出し画像

ユーザーフォームのコマンドの使い方

 Excel VBA ユーザーフォームのコマンドの使い方
 Excel VBA ユーザーフォームのコマンドボタンは、ユーザーがフォーム上でクリックすることで、マクロを実行したり、フォームの動作を制御したりするために使用されます。

コマンドボタンの追加

 VBA エディタを開きます。
 挿入メニューからユーザーフォームを選択します。
 ユーザーフォーム上にコマンドボタンを追加するには、ツールボックスからコマンドボタンコントロールをドラッグしてドロップします。
 コマンドボタンにマクロを割り当てる

 コマンドボタンを右クリックして、ショートカットキーの設定を選択します。
 カテゴリボックスからマクロを選択します。
 マクロ名ボックスから実行したいマクロを選択します。
 OKをクリックします。

コマンドボタンのイベントハンドラ

 コマンドボタンをクリックしたときに実行する処理を記述するには、コマンドボタンのClickイベントハンドラを使用します。

VBA
Private Sub CommandButton1_Click()

' マクロを実行する
Application.Run "マクロ名"

' フォームを閉じる
Unload Me

End Sub
コードは注意してご使用ください。

コマンドボタンのプロパティ

コマンドボタンには、次のプロパティを設定できます。

Caption: ボタンに表示されるテキスト
Name: マクロコードで使用されるボタンの名前
Enabled: ボタンが有効かどうか
Visible: ボタンが表示されるかどうか
Font: ボタンのフォント
BackColor: ボタンの背景色

コマンドボタンの例

 次の例は、ユーザーがフォームに入力した名前と年齢を Excel シートに記録するコマンドボタンを持つユーザーフォームを作成します。

VBA
Option Explicit

Private Sub CommandButton1_Click()

' シートを取得する
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")

' 次の行にデータを書き込む
Dim nextRow As Long
nextRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1

' データを書き込む
ws.Cells(nextRow, "A").Value = TextBox1.Value
ws.Cells(nextRow, "B").Value = TextBox2.Value

' フォームを閉じる
Unload Me

End Sub
コードは注意してご使用ください。

 この例では、CommandButton1というコマンドボタンがクリックされたときに、CommandButton1_Clickイベントハンドラが実行されます。
 このイベントハンドラは、次の処理を実行します。

ThisWorkbookプロパティを使用して、現在のワークブックを取得します。
Worksheetsコレクションを使用して、Sheet1ワークシートを取得します。
**End(xlUp)**メソッドを使用して、最後の使用済みの行を取得します。
Cellsプロパティを使用して、次の行のセルを取得します。
Valueプロパティを使用して、セルにデータ書き込みます。
Unload Meステートメントを使用して、フォームを閉じます。

その他のリソース
 フォームまたはコントロール ボタンにマクロを割り当てる - Microsoft サポート [無効な URL を削除しました]
 【VBA入門】ユーザーフォームの使い方(テキスト表示、カレンダー) | 侍エンジニアブログ](https://www.sejuku.net/blog/37407)

この記事が気に入ったらサポートをしてみませんか?