• ベストアンサー

ユーザーフォーム

エクセルでユーザーフォーム上にコマンドボタンを配置し、特定のコマンドボタンを押した時に、他のユーザーフォームを呼び出せるようにしたいのですが、どうしたらいいのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

下記はあくまで例です。 挿入ーユーザーフォームで2つユーザーフォームを作る。 UserForm1 UserForm2 -- UserForm1にコマンドボタンを3つ作る。 1つめCommandButton1をデザインモードでダブルクリックすると Private Sub CommandButton1_Click() Me.Hide UserForm2.TextBox1 = "" UserForm2.Show vbmodless End Sub が出るので、中の2行を入れる。 ーー CommandButton3について Private Sub CommandButton3_Click() Unload UserForm1 Unload UserForm2 End Sub で終わらせる処理をする用意をする。 ーー UserForm2にテキストボックス1つと、コマンドボタン1つ作る。 CommandButton1をデザインモード状態でダブルクリックすると Private Sub CommandButton1_Click() ActiveCell = TextBox1.Text UserForm2.Hide UserForm1.Show vbmodless End Sub の外枠2行が出るから、中の3行を入れる。 ーー ーー これでUserForm1のCommandButton1をクリックすると UserForm12が表示され、テキストボックスに値を入れて、 CommandButton1をクリックすると、アクチブセルに値をセットし て、UserForm1が表示される。 ーー その前に標準モジュールに Sub test01() Sheets("Sheet1").Activate UserForm1.Show vbmodless End Sub を作る。 ーー 標準モジュールのtest01を実行する。 UserForm1が表示される。 commandButton1をクリック。 UserForm2が表示される。 データをセットするセルをアクチブにする。 何かセルにセットしたいデータを入力。 commandButton1をクリック。 データがセットされUserForm1が表示される. -- UserForm1commandButton3をクリックするとフォームは消える(メモリから消える)。 説明するとなると長くなりますね。 この質問は入門書には必ず書いてあるはずの事項です。

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

UserFoam1のコマンドボタンでUserFoam2を呼び出す UserFoam1のコマンドボタン1に以下のコードを記述。 Private Sub CommandButton1_Click()     UserForm2.Show     Unload UserForm2 End Sub では、どうでしょうか?