以下は、私たちは、進行状況インジケータを作成するエクセルVBAでプログラムを見ていきます。私たちは、できるだけ簡単なように進行状況インジケータを守ってきた、まだそれは本格的に見えます。準備はできたか?ユーザーフォームは、我々は次のようにルックスを作成しようとしている。

Progress Indicator in Excel VBA

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

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

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

Userform Screen Setup in Excel VBA

このユーザーフォームは3つのコントロールで構成されています。フレームコントロールと2つのラベルコントロール。

フレームコントロールを追加します。3.。あなたは、ツールボックスからフレームをクリックすることでこれを行うことができます。次に、ユーザーフォーム上のフレームコントロールをドラッグすることができます。あなたはこのフレームコントロールのいくつかのプロパティを変更する必要があります。マウスの右ボタンは、フレームコントロールをクリックし、[プロパティ]をクリックします。 Captionフィールドを空にし、204に24と高さと幅を設定し

4.最初のラベルコントロールを追加し、Frameコントロールに配置します。マウスの右ボタンは、ラベルコントロールをクリックし、[プロパティ]をクリックします。 、ハイライトにバー、BackColorプロパティに名前を変更してCaptionフィールドを空に、10に幅20と高さを設定

5.第2ラベルコントロールを追加し、フレームコントロールの上に置きます。

マウスの右ボタンは、ラベルコントロールをクリックし、[プロパティ]をクリックします。

テキストに名前を変更し、「完了0%」にキャプションを変更します。

6.変更進捗インジケータへのユーザーフォームのキャプション。

これが完了すると、結果は、前に示したユーザーフォームの画像と一致している必要があります。

7.ワークシート上のコマンドボタンとユーザーフォームを表示するには、次のコード行を追加します。

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

このサイト上の他のユーザーフォームの例を経ていた場合は、これはサブUserForm_Initializeを作成するための時間であることを知っています。このサブは、ユーザーフォームがロードされるたびに自動的に実行されます。ユーザーフォームのために、Showメソッドを使用するときにこのように、コードが自動的に実行されます。代わりに、サブUserForm_Initialize、我々はサブUserForm_Activateを作成します。このサブを使用することにより、ExcelのVBAマクロの進行状況を表示するユーザーフォームを更新することができます。

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

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

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

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

Private Sub UserForm_Activate()

code

End Sub

説明:このサブたちは分で作成しようとしている別のサブコードネームを呼び出します。混乱?あなたは潜水艦についてもっと学ぶために私達の機能とサブチャプターを通過することができます。お急ぎの場合は、単に次の手順を実行して、あなたは罰金になります。

12.モジュールにコードという名前のサブ(Visual Basicエディターで、[挿入モジュール]をクリックします)。これは単なる一例です。これは、あなた自身のマクロのこの進行状況インジケータを使用する場合、独自のコードを追加する場所です。コードは次のように見えます。

Sub code()

Dim i As Integer, j As Integer, pctCompl As Single

Sheet1.Cells.Clear

For i = 1 To 100

For j = 1 To 1000

Cells(i, 1).Value = j

Next j

pctCompl = i

progress pctCompl

Next i

End Sub

説明:最初に、我々はいくつかの変数を初期化します。次に、我々は、シート1をクリアします。

私たちは、ワークシートの最初の100行で1〜1000の値を表示するために、二重ループを使用します。これは、しばらくの間、忙しくエクセルVBAを維持し、私たちにマクロの進行状況を確認する機会を与えてくれます。可変pctCompl(percentageCompletedの略語)は、マクロの進行を測定します。最後に、我々は別のサブという名前の進捗状況を呼び出し、ユーザーフォームを更新するために、変数pctComplの値を渡します。このように、我々は、マクロの進行状況を確認することができます! 13.別のサブという名前の進捗状況を追加します。コードは次のようになります。

Sub progress(pctCompl As Single)

UserForm1.Text.Caption = pctCompl & "% Completed"

UserForm1.Bar.Width = pctCompl * 2

DoEvents

End Sub

説明:最初のコード行は、最初のラベルコントロールのキャプションを変更します。第2のコード行は、第2ラベルコントロールの幅を変化させます。ユーザーフォームを更新するために、DoEvents関数を追加します。

14.終了し、Visual Basic Editorで、用紙上のコマンドボタンをクリックします。

結果:

Progress Indicator Result

注:このマクロのために、私たちは、進捗状況を測定するための変数iを使用していました。

例えば、行11で、10%が完成します。これは、あなたのマクロのために異なる場合があります。ユーザーフォームを更新するサブ進歩変数pctComplの値を渡すの技術は同じままです。