ユーザーフォームをコマンドボタンの下に配置する方法

私はコマンドボタンを作成しました。ボタンをクリックすると userform1 が表示され、userformにはカレンダーコントロールがあり、画面中央にポップアップしますが、コマンドボタン。ボタンの下にuserform1を配置する方法はありますか?

まあ、私は軸のサイズと私のPC上で動作しているが、ピクセルが変更されたときに再びどこかにあります。

0

1 答え

私は1つのユーザーフォームのコマンドボタンと、別のカレンダーコントロールを想定しています。

使用しているVBAのバージョンはわかりません。私はExcel 2003でこれをテストしました。たとえば、VB 2010などでより良いソリューションが利用できることがわかっています。

アプローチ1

2番目のフォームが必要ですか?次のようにしてコントロールを隠すことができます。

ControlName.Visible = False

それを見えるようにする

ControlName.Visible = True

アプローチ2

1つのモジュールにいくつかのパブリック変数が必要です。

Public ButLeft As Integer
Public ButHeight As Integer
Public ButTop As Integer
Public Form1Left As Integer
Public Form1Top As Integer

コマンドボタンのクリックイベント内には、次のものが含まれます。

' This stores information about the current position of
' Form 1 relative to the active window.
With Me
  Form1Top = .Top
  Form1Left = .Left
End With
' This stores information about the current position of the
' command button relative to the useable part of Form 1.
With Me.CommandButton
  ButTop = .Top
  ButLeft = .Left
  ButLeft = .Height
End With

フォーム2には以下が含まれます:

Private Sub UserForm_Activate()

  ' This positions Form 2 relative to the current position
  ' of the command button.  The "+50" is because the stored
  ' values do not allow for the width of Form1's border.
  ' Experiment to get values that look good to you. 
  With Me
    .Top = FormTop + But1Top + But1Height + 50
    .Left = FormLeft + But1Left + 50
  End With

End Sub

このコードでは、ユーザーがフォーム1をどのように移動しても、コマンドボタンの下にフォーム2が表示されます。

0
追加された