• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ユーザーフォームをWorksheet上で表示)

ユーザーフォームをWorksheet上で表示

このQ&Aのポイント
  • ワンクリックでユーザーフォームを表示する方法としてWorksheet上にボタンを作成する
  • Excel2013でユーザーフォームを表示するための具体的なコードの記述
  • ユーザーフォームの保存先は「Sheet1」のA1からA5まで

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

  • ベストアンサー
回答No.1

こんにちは。 >WorksheetのセルA1(名前を記述してある)をクリックするだけでユーザーフォームを表示する こういうことでしょうか? '//シートモジュールに貼り付けてください。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address(0, 0) = "A1" Then  UserForm1.Show vbModeless '必要に応じて、UserFormのオブジェクト名を換えてください。 End If End Sub 'おまけ。A1右クリックで、ユーザーフォームをアンロード Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)  Cancel = True  If Target.Address(0, 0) = "A1" Then   If UserForms.Count > 0 Then    Unload UserForm1 '必要に応じて、UserFormのオブジェクト名を換えてください。   End If  End If End Sub '//

y-momiji
質問者

補足

回答ありがとうございます。 >UserForm1.Show vbModeless '必要に応じて、UserFormのオブジェクト名を換えてください。 自分が設定しているオブジェクト名に変更してシートモジュールに貼り付けて、WorksheetのA1をクリックしてもユーザーフォームが表示されません。 私の設定の仕方が間違っているのでしょうか? よろしくお願いします。

その他の回答 (2)

回答No.3

こんにちは。 言葉で伝えるのは難しいですね。 >シート・タブを右クリックして、メニューの中の「コードの表示」で表示されるモジュールの中に > >Private Sub UserForm_Click() > Myform.Show vbModeless > End Sub 少なくとも、このプログラムは、生きていないはずです。 このプログラムは、UserFormモジュール上で動くものですが、UserFormが二つないと、コードの論理的な矛盾があります。 >これは、UserForm1 の部分を Myform に変更すればいいということでしょうか? 違います。 Myformが、UserFormのオブジェクト名なら、以下のようにするということです。 以下が、イベント・ドリブン型のプログラムです。 これを、シートモジュールに貼り付けてください、ということです。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address(0, 0) = "A1" Then  Myform.Show vbModeless  End If End Sub

回答No.2

こんにちは。 >自分が設定しているオブジェクト名に変更してシートモジュールに貼り付けて、WorksheetのA1をクリックしてもユーザーフォームが表示されません。 その場合は、起動していたコマンド・ボタンがありますよね。 その起動した中のコードをそっくり、*の部分に置き換えればよいです。 If Target.Address(0, 0) = "A1" Then  '*UserForm1.Show vbModeless '必要に応じて、UserFormのオブジェクト名を換えてください。 End If 他に思い当たる所というと、「'//シートモジュールに貼り付けてください。」というのは、 そのデータのあるシートのシート・タブを右クリックして、メニューの中の「コードの表示」で出てきたモジュールのことです。今の所、コマンド・ボタンで起動できるかぎりは、思い当たる場所がありません。 試してみてください。

y-momiji
質問者

補足

再度の回答ありがとうございます。 確認のためお聞きします。 >その場合は、起動していたコマンド・ボタンがありますよね。 このコマンドボタンというのは、今使っている、ボタンからユーザーフォームを表示させるボタンの事ですね。 このボタンのマクロは、「開発」→「マクロ」の画面で表示される マクロ名は ShowUserForm で、「編集」クリックで表示されるのは Sub ShowUserForm() Myform.Show vbModeless End Sub となっています。 また、シート・タブを右クリックして、メニューの中の「コードの表示」で表示されるモジュールの中に Private Sub UserForm_Click() Myform.Show vbModeless End Sub という記述があります。 >'*UserForm1.Show vbModeless '必要に応じて、UserFormのオブジェクト名を換えてください。 これは、UserForm1 の部分を Myform に変更すればいいということでしょうか? Myform と変更してもA1のクリックでユーザーフォームは表示しません。 また、「コードの表示」で表示される記述の順番、削除しなければならない記述はありますか? よろしくお願いします。

関連するQ&A