image

この記事では、VBAユーザーフォームの基本を学びます。 Excelでフォームを作成する方法、VBAツールボックスを使用する方法、ユーザー入力を処理する方法、そして最後にユーザー入力を保存する方法について説明します。 1つの例とステップバイステップガイドを使用して、これらのトピックについて説明します。これを読んでいるなら、ExcelVBAの基本を知っていると思います。

さらに遅れることなく、始めましょう。

Excelとストアレコードに投資するためのフォームを作成する

まず、ユーザーフォームのデザインから始めます。このユーザーフォームには、名前用のテキストボックス、年齢用のテキストボックス、投資額用のテキストボックス、性別用のラジオボタンのペアがあります。始めましょう。

ユーザーフォームをデザインする

ALT + F11ショートカットを使用して、ExcelでVisual BasicEditorを開きます。プロジェクトボックスで、VBAProject(yourfile)を右クリックします。挿入オプションで、ユーザーフォームを選択します。すぐに、新しいフォルダが作成され、ユーザーフォームが見つかります。このプロジェクトのすべてのユーザーフォームは、このフォルダーに追加されます。

プロパティボックス*でフォームの名前をInvestmentFormに変更します。

フォームに要素を追加する:上の画像では、すでに要素(ラベル、テキストボックス、コマンドボタン)を追加しています。ただし、新しいユーザーフォームは完全に空白です。フォームに要素を追加するには、ツールボックスを使用する必要があります。ツールボックスが表示されない場合は、[表示*]タブから取得してください。

名前要素*:テキストボックス、ラベル、ボタンなどはすべて要素です。

また、VBAコードでそれらを使用するには、名前を付ける必要があります。プロパティウィンドウを使用して名前を変更します。要素を選択します。ここでは、名前のテキストボックスを選択しています。プロパティウィンドウに移動し、名前を「NameBox *」に変更します。使用する要素ごとに同じことを行います。 (クリック可能にする場合を除いて、ラベルに名前を付ける必要はありません。

image

以下の表のように要素の名前を変更しました。これらの名前を使用して参照します。異なる名前を付けることができます。これらの名前を自分の名前に置き換えるだけです。これらは、コードで使用されるVBA名(コード名)です。それらはフォームに反映されません。

ラベルやボタンに表示されるテキストは「キャプション」です。必要に応じて、要素の名前とキャプションを同じにすることができます。

Element

Rename

Name Text Box

NameBox

Age Text Box

AgeBox

Male Option Button

MaleOption

Female Option Button

FemaleOption

Investment Text Box

InvestBox

Submit Command Button

SubmitButton

Cancel Command Button

CancelButton

ユーザーフォームをユーザーに表示する:フォームの準備ができたので、ユーザーに表示しましょう。しかし、待ってください、どうすればいいですか。ワークシートには、ユーザーフォームを呼び出すオプションはありません。実際には、ユーザーフォームにはトリガーが必要です。単独では表示できません。コマンドボタン、サブルーチン、またはイベントを使用して、フォームを画面にポップアップ表示できます。

ここでは、コマンドボタンを使用してユーザーフォームをトリガーします。

  • ワークシートで、[開発者]タブに移動しますか?インサート?ボタン(フォームコントロール)。

オープンフォームに名前を変更します。

  • それを右クリックします。 [マクロの割り当て]をクリックしてから、[新規]をクリックします。

image

サブはすぐに作成されます。次に、この行をそのサブに追加します。

Sub Open_Form()

'Opening form

InvestmentForm.Show

End Sub

されております。そのシートに戻り、ボタンをクリックします。ユーザーフォームがポップアップ表示されます。

image

VBAユーザーフォームを使用してシートに記入する:コマンドボタン(フォームを開く)をクリックすると、フォームがポップアップします。これで、フォームに入力できます。しかし、送信ボタンをクリックすると、このシートにデータが入力されているはずですが、何も起こりません。そのためのvba命令を作成していないためです。ユーザーフォームのデータをシートに保存する必要があります。 VBAに戻り、[送信]ボタンをダブルクリックします。新しいサブが自動的に作成されます。このサブはフォームに埋め込まれており、どのモジュールにもありません。これは、フォームの各要素で同じです。

  • このvbaコードをそのサブに記述します。

Private Sub SubmitButton_Click()

Sheet1.Activate

'get first empty row on sheet (read about it here)

lstrow = Cells(Rows.Count, 1).End(xlUp).Row

Set firstEmptyRow = Range("A" & lstrow + 1)

'initialize each cell with data

firstEmptyRow.Offset(0, 0).Value = nameBox.Value 'first cell

firstEmptyRow.Offset(0, 1).Value = AgeBox.Value 'first cell to the right

firstEmptyRow.Offset(0, 3).Value = InvestBox.Value 'third cell to the right

'checking radio button

If MaleOption.Value = True Then

firstEmptyRow.Offset(0, 2).Value = "Male" 'second cell to the right

Else

firstEmptyRow.Offset(0, 2).Value = "Female" 'second cell to the right

End If

'Closing form

Unload Me

End Sub

上記のVBAコードのスニペットは、送信ボタンがクリックされたときに実行されます。シートの最初の空の行を見つけて、フォームで提供された値で埋めます。そして最後に、コマンド「UnloadMe」を使用してフォームを閉じます。

image

[キャンセル]コマンドを使用してフォームを閉じます。今のところ、キャンセルボタンは役に立ちません。何もしていません。入力を中止したい場合は、キャンセルボタンを使用できます。その場合:* VBAエディターのキャンセルコマンドボタンをダブルクリックします。新しいサブが作成されます。このコード行を記述して、ユーザーフォームを閉じます。

Private Sub CancelButton_Click()

'Closing form

Unload Me

End Sub

最後に、フォームコードは次のようになります。

image

以上です。これは、Excelvbaユーザーフォームを使用してユーザーから入力を取得する方法です。この記事では、ユーザーフォームの基本的な使用法について説明したので、ユーザーフォームに慣れてください。基本的なvbaの知識があれば、簡単です。

今後の記事では、Excelのvbaユーザーフォームのより高度な機能について説明します。さらに多くのことを行うために、Excelでユーザーフォームを作成します。

vbaユーザーフォームで使用できるさまざまなツールと要素について説明します。

それからこれを練習するまで。必要に応じて、このファイルを参照用にダウンロードできます。

そうそう、これは小さくてシンプルなユーザーフォームのチュートリアルでした。機知に富んだことを願っています。これに関して疑問がある場合は、下のコメントセクションでお知らせください。

関連記事

`link:/ user-forms-input-boxes-in-vba-change-the-valuecontent-of-several-userform-controls-using-vba-in-microsoft-excel [いくつかのUserForm-controlsの値/コンテンツを変更しますExcelでVBAを使用する] `

`link:/ user-forms-input-boxes-in-vba-prevent-a-userform-from-closeing-when-the-user-clicks-the-x-button-using-vba-in-microsoft-excel [ ExcelでVBAを使用して、ユーザーがxボタンをクリックしたときにユーザーフォームが閉じないようにします] `

`link:/ user-forms-input-boxes-in-vba-return-a-userdefined-cell-reference-from-a-dialog-using-vba-in-microsoft-excel [RefEditを使用して、ユーザーが参照するセルを返しますExcelでのユーザーフォームの制御] `

人気の記事:

link:/ forms-and-functions-introduction-of-vlookup-function [ExcelのVLOOKUP関数]

link:/ Tips-countif-in-microsoft-excel [COUNTIF in Excel 2016]

link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法]