• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelVBA : GetObject関数でのユーザーフォームの参照)

ExcelVBAでのユーザーフォームの参照方法と変更可能な要素について

このQ&Aのポイント
  • ExcelVBAでGetObject関数を使用して起動中のExcelを参照しながら、ユーザーフォームの中身を変更することはできるのか疑問に思っています。
  • 現在、ラベルの値を変更しようとしていますが、実行エラーが発生してしまいます。
  • オブジェクトの階層が違うのか解決方法がわかりません。ExcelVBAでのユーザーフォームの参照と要素の変更方法をご存知の方は教えてください。

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

  • ベストアンサー
  • rukuku
  • ベストアンサー率42% (401/933)
回答No.1

こんばんは 私にとって、初めてのケースですが、これまでにExcel&VBA多用なことは行ってきていますので、それらの経験と、簡単なテストを行ってみた結果からのアドバイスです。 Application.Run が使えそうです。 たとえば、Book2.xlsのUserForm1にLabel1ある場合、 Book2.xlsの標準モジュールに Sub ShowForm2() UserForm1.Label1 = 5 UserForm1.Show End Sub を設置しておけば、他のブックから、 Sub show1() Application.Run "Book2.xls!ShowForm2" End Sub で呼び出すことが出来ます。 ただし、「Book2.xls」が開いていることが前提です。 「Call」では同じブックでも他のモジュールの「Private Sub(Private Function)」を呼び出すことは出来ません。「Application.Run」を使うと、他のモジュールの「Private Sub(Private Function)」を呼び出すことが出来ます。

関連するQ&A