あなたは、ユーザからの範囲を取得するために、Excel VBAでRefEditコントロールを使用することができます。ユーザーフォームは、私たちは色にRefEditコントロールに保存されている範囲の最小値を作成しようとしています。

Userform and Ranges in Excel VBA

このユーザーフォームを作成するには、次の手順を実行します。

  1. Visual Basicエディターを開きます。プロジェクトエクスプローラが表示されていない場合、ビュー、プロジェクトエクスプローラ]をクリックします。

挿入、ユーザーフォーム]をクリックします。ツールボックスが自動的に表示されない場合、ビュー、[ツールボックス]をクリックします。画面は以下のように設定する必要があります。

Userform Screen Setup in Excel VBA

ラベル、RefEditコントロールとコマンドボタンを追加します。3.。これが完了すると、結果は、前に示したユーザーフォームの画像と一致している必要があります。たとえば、ツールボックスからのRefEditをクリックしてRefEditコントロールを作成します。次に、ユーザーフォーム上のRefEditコントロールをドラッグすることができます。

注:お使いのツールボックスは、RefEditコントロールを持っていない場合は、RefEditコントロールへの参照を設定します。 [ツール]、[参照設定]をクリックし、参考編集コントロールを確認してください。

4.名前とコントロールのキャプションを変更することができます。名前は、Excel VBAコードで使用されています。キャプションは画面に表示されるものです。コントロールの名前を変更することをお勧めですが、我々は唯一この例では、いくつかのコントロールを持っているので、それはここでは必要ではありません。ユーザーフォーム、ラベルとコマンドボタンのキャプションを変更するには、[表示]、[プロパティ]ウィンドウをクリックして、各コントロールをクリックしてください。

、ユーザーフォームを表示するワークシート上のコマンドボタンを配置し、次のコード行を追加するには5:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

私たちは今、サブUserForm_Initializeを作成しようとしています。ユーザーフォームのために、Showメソッドを使用する場合、このサブが自動的に実行されます。

  1. Visual Basicエディターを開きます。

7.プロジェクトエクスプローラでは、右のUserForm1をクリックし、[コードの表示]をクリックします。

8.左のドロップダウンリストからユーザーフォームを選択してください。右のドロップダウンリストから[Initialize]を選択してください。

次のコード行を追加します。9.:

Private Sub UserForm_Initialize()

Sheet1.Cells.Font.Color = vbBlack

UserForm1.RefEdit1.Text = Selection.Address

End Sub

説明:最初のコード行黒にシート1上の全てのセルのフォントの色を変化させます。第2のコード行は、RefEditコントロールの現在の選択と表示それのアドレスを取得します。

私たちは今、ユーザーフォームの最初の部分を作成しました。それはすでにきちんと見えますが、我々はユーザーフォーム上のコマンドボタンをクリックすると、まだ何も起こりません。

10.プロジェクトエクスプローラで、UserForm1でダブルクリックします。

11.ダブルGoボタンをクリックしてください。

12.次のコード行を追加します。

Private Sub CommandButton1_Click()

Dim addr As String, rng, cell As Range, minimum

As Double

addr = RefEdit1.Value

Set rng = Range(addr)

minimum = WorksheetFunction.Min(rng)

For Each cell In rng

If cell.Value = minimum Then cell.Font.Color = vbRed

Next cell

End Sub

説明:最初に、私たちはRefEditコントロールからアドレスを取得し、String変数addrの中にそれを格納します。次に、我々は、RefEditコントロールに指定された範囲にRNG設定します。次に、我々は範囲内の最小値を見つけるために、ワークシート関数分を使用しています。最後に、我々は、ループを使用して最小値(複数可)の色。

13.ダブルは[キャンセル]ボタンをクリックしてください。

14.次のコード行を追加します。

Private Sub CommandButton2_Click()

Unload Me

End Sub

説明:このコード行は、[キャンセル]ボタンをクリックすると、ユーザーフォームを閉じます。

15.テストユーザーフォーム。

結果:

Userform and Ranges Result