Excel VBA

Excel VBA | おしゃれなユーザーフォームを:各コントロール解説[3/3]

2024年5月30日

本ページはプロモーションが含まれています

vbaユーザーフォームアイキャッチ画像3

Excel VBAでユーザーフォームを設計する際、スクロールバーやスピンボタン、イメージ、RefEditなどの要素を使うことは一般的ですが、これらを効果的に活用する方法に悩んでいませんか?

本記事では、ユーザーフォームデザインの基本を理解し、これらの要素をどのように使ってより使いやすいフォームを作成するかについて解説します。

この記事は以下のコントロールについて解説します。

  • スクロールバー
  • スピンボタン
  • イメージ
  • RefEdit
  • ユーザーフォーム

スクロールバー

vbaユーザーフォームスクロールバー画像1
vbaユーザーフォームスクロールバー画像

ポイント

スクロールバーは、ウィンドウやコンテンツ領域内で表示されない情報や要素を見るために画面上をスクロールするためのUI要素です。
ユーザーがスクロールバーを操作することで、画面上下左右に表示される領域を移動することができます。
これにより、大きなコンテンツや領域を制限されたスペース内に表示することが可能になります。

スクロールバーのサンプルコード

Private Sub ScrollBar1_Change()
    ' スクロールバーの値を取得し、セルA1に設定
    Range("A1").Value = ScrollBar1.Value
End Sub

スクロールバーの主なプロパティ

  1. (オブジェクト名): スクロールバーの識別名を指定します。VBAコード内でスクロールバーを参照する際に使用されます。
  2. Min(最小値): スクロールバーの最小値を指定します。通常は0ですが、カスタマイズされた範囲を設定する場合に使用されます。
  3. Max(最大値): スクロールバーの最大値を指定します。
  4. Value(値): スクロールバーの現在の値を指定します。これは、ユーザーがスクロールバーを操作した結果として変化します。
  5. SmallChange(小さな変更量): 矢印ボタンをクリックしたときに値が変化する量を指定します。通常は1ですが、必要に応じて変更できます。
  6. LargeChange(大きな変更量): スクロールバーのスライダーをドラッグしたときに値が変化する量を指定します。
  7. Orientation(方向): スクロールバーの方向を指定します。水平方向の場合は0、垂直方向の場合は1です。
  8. Enabled(有効性): スクロールバーが有効か無効かを指定します。True(有効)またはFalse(無効)の値を取ります。
  9. Visible(可視性): スクロールバーが表示されるかどうかを指定します。True(表示)またはFalse(非表示)の値を取ります。

スピンボタン

vbaユーザーフォームスピンボタン画像

ポイント

スピンボタンは、数値やテキストなどの値を増減するためのコントロールです。
通常、テキストボックスと組み合わせて使用され、ユーザーが数値や選択肢を手動で増減することができます。
上下の矢印をクリックするか、キーボードで上下の矢印キーを押すことで値を変更します。
主に数値の入力や選択肢の変更に使用され、直感的で使いやすいUIを提供します。

スピンボタンのサンプルコード

Private Sub SpinButton1_Change()
    ' スピンボタンの値を取得し、セルA1に設定
    Range("A1").Value = SpinButton1.Value
End Sub

スピンボタンの主なプロパティ

  1. オブジェクト名): スピンボタンの識別名を指定します。VBAコード内でスピンボタンを参照する際に使用されます。
  2. Min(最小値): スピンボタンの最小値を指定します。通常は0ですが、カスタマイズされた範囲を設定する場合に使用されます。
  3. Max(最大値): スピンボタンの最大値を指定します。
  4. Value(値): スピンボタンの現在の値を指定します。これは、ユーザーがスピンボタンを操作した結果として変化します。
  5. SmallChange(小さな変更量): 矢印ボタンをクリックしたときに値が変化する量を指定します。通常は1ですが、必要に応じて変更できます。
  6. Enabled(有効性): スピンボタンが有効か無効かを指定します。True(有効)またはFalse(無効)の値を取ります。
  7. Orientation(方向): スピンボタンの方向を指定します。水平方向の場合は0、垂直方向の場合は1です。
  8. Delay(遅延): ユーザーが矢印ボタンを押し続けた場合に値が変化するまでの待機時間を指定します。

スクロールバーとスピンボタンの違いまとめ

スクロールバーとスピンボタンは動作がほとんど同じですがそれぞれの使い分けがあります。
以下はそれぞれの違いをまとめてみました。

  • 操作の精度
    • スピンボタン少ない範囲の数値調整に向いている
    • スクロールバー大きな範囲の数値調整向いている
  • 操作方法
    • スピンボタンは上下の矢印をクリックして数値を微調整できる。
    • スクロールバーはバーをドラッグすることで素早く大きな範囲の数値を調整でる。
  • サイズとレイアウト
    • スピンボタンは小さく、フォームやシート上のスペースを節約できます
    • スクロールバーはより大きなインターフェースが必要です。

イメージ

vbaユーザーフォームイメージ画像

ポイント

イメージコントロールは、ユーザーフォームに画像を表示するためのコントロールです。
一般的には、BMP、JPEG、GIF、PNG などがサポートされています。

イメージのサンプルコード

Private Sub UserForm_Initialize()
    ' イメージコントロールに画像を設定
    Me.Image1.Picture = LoadPicture("C:\path\to\your\image.jpg")
    ' 画像の表示モードを設定(ここではズームモード)
    Me.Image1.PictureSizeMode = fmPictureSizeModeZoom
End Sub

イメージの主なプロパティ

  1. Name(名前): イメージの識別名を指定します。VBAコード内でイメージを参照する際に使用されます。
  2. Picture(画像): イメージに表示される画像を指定します。通常は、ファイルパスまたはイメージリソースの名前を指定します。
  3. PictureSizeMode(画像サイズモード):
    • fmPictureSizeModeClip画像がクリップされます(デフォルト設定)。
    • fmPictureSizeModeStretch画像がコントロールのサイズに合わせて引き伸ばされます。
    • fmPictureSizeModeZoom画像が縦横比を維持したままコントロールに合わせて調整されます。
  4. Enabled(有効性): イメージが有効か無効かを指定します。True(有効)またはFalse(無効)の値を取ります。
  5. Visible(可視性): イメージが表示されるかどうかを指定します。True(表示)またはFalse(非表示)の値を取ります。
  6. BackColor(背景色): イメージの背景色を指定します。
  7. BorderStyle(境界線スタイル): イメージの境界線のスタイルを指定します(Single、Double、Noneなど)。
  8. AutoSize(自動サイズ調整): Trueに設定すると、イメージのサイズが自動的に画像に合わせて調整されます。

RefEdit

vbaユーザーフォームRefEdit画像

ポイント

RefEditコントロールは、ユーザーがExcelシート上のセル範囲を簡単に選択できるようにするためのコントロールです。
通常、ユーザーフォーム上に配置して、ユーザーが選択したセル範囲を取得するために使用されます。

RefEditのサンプルコード

Private Sub CommandButton1_Click()
    ' ボタンがクリックされたときの処理
    ' 選択されたセル範囲に文字列 "りんご" を入力する
    Dim selectedRange As Range
    On Error Resume Next
    Set selectedRange = Range(RefEdit1.Value)
    On Error GoTo 0
    
    If Not selectedRange Is Nothing Then
        selectedRange.Value = "りんご"
        MsgBox "選択されたセル範囲に文字列 ""りんご"" を入力しました。"
    Else
        MsgBox "選択されたセル範囲が無効です。"
    End If
End Sub

コードの実行

  • ユーザーフォーム上にコマンドボタンとRefEditコントロールを配置します。
  • コマンドボタンをダブルクリックして、上記のコードを入力します。
  • RefEditコントロールの右端のところをクリックするvbaRefEdit操作画像1
  • セル範囲を選択するvbaRefEdit操作画像2
  • フォーム上にあるコマンドボタンをクリックする
  • 選択したセル範囲にりんごが入力されるvbaRefEdit操作画像3

RefEditの主なプロパティ

  1. (オブジェクト名): RefEditコントロールの識別名を指定します。VBAコード内でRefEditコントロールを参照する際に使用されます。
  2. Value(値): RefEditコントロールに選択された参照セルや範囲のアドレスが格納されます。

ユーザーフォーム

vbaユーザーフォーム画像

ポイント

ユーザーフォームは、Excel VBAでインタラクティブなユーザーインターフェースを作成するための強力なツールです。
ユーザーフォームを使用することで、ユーザーにとって使いやすいデータ入力や操作環境を提供することができます。
コントロールの配置やプロパティ設定、イベント処理を適切に行うことで、柔軟で機能的なユーザーフォームを作成することができます。

ユーザーフォームのサンプルコード

Sub ShowUserForm()
    UserForm1.Show
End Sub

ユーザーフォームの主なプロパティ

  1. (オブジェクト名): ユーザーフォームの識別名を指定します。VBAコード内でユーザーフォームを参照する際に使用されます。
  2. Caption(キャプション): ユーザーフォームのタイトルバーに表示されるテキストを指定します。
  3. Enabled(有効性): ユーザーフォームが有効か無効かを指定します。True(有効)またはFalse(無効)の値を取ります。
  4. BackColor(背景色): ユーザーフォームの背景色を指定します。
  5. ForeColor(前景色): ユーザーフォームのテキストの色を指定します。
  6. Font(フォント): ユーザーフォームのフォントの種類、サイズ、スタイルを指定します。
  7. Width(幅): ユーザーフォームの幅をピクセル単位で指定します。
  8. Height(高さ): ユーザーフォームの高さをピクセル単位で指定します。
  9. Left(左端位置): ユーザーフォームの左端の位置をピクセル単位で指定します。
  10. Top(上端位置): ユーザーフォームの上端の位置をピクセル単位で指定します。
  11. BorderStyle(境界線スタイル): ユーザーフォームの境界線のスタイルを指定します(FixedSingle、Sizable、Noneなど)。
  12. ShowModal(モーダル表示): ユーザーフォームをモーダルダイアログとして表示するかどうかを指定します。True(モーダル表示)またはFalse(モードレス表示)の値を取ります。

まとめ

  • スクロールバー
    • コンテンツのスクロール操作を可能にするUI要素。
    • 画面上下左右に表示され、ドラッグやクリックによりコンテンツを移動。
  • スピンボタン
    • 数値やテキストの値を増減するためのコントロール。
    • 上下の矢印をクリックまたはキーボード入力で値を変更。
  • イメージ
    • 画像を表示するためのコントロール。
    • ユーザーフォームに画像を配置して情報の視覚化や装飾に利用。
  • RefEdit
    • ユーザーがセル範囲を選択できるようにするコントロール。
    • リファレンスを入力するためのテキストボックスとボタンから構成。
  • ユーザーフォーム
    • ユーザーインターフェースを構築するためのコンテナ。
    • 上記のコントロールや他の要素を配置してGUIを設計。

Follow me!

-Excel VBA
-,

PAGE TOP