3つの「トップレベル」ページ(マルチページ機能を使用)と4つのネストされたページを持つ2つのトップレベルページ。下記の写真を見てください。私はプログラム的にネストされたページを参照するのは困難な時を抱えています。この例ではEXCEL VBA:マルチページがネストされている場合のユーザーフォーム内の特定のページの選択
Screenshot of Nested Multipage Userform
、ページのキャプションと名前は同じです。したがって、Page4のキャプションを持つページもPage4という名前になります。
===
機能fMpIndex(文字列としてByValページ名)
Dim PageCounter As Long
With MultiPage1
For PageCounter = 0 To .Pages.Count - 1
If .Pages(PageCounter).Name = PageName Then fMpIndex = PageCounter: Exit Function
Next PageCounter
End With
fMpIndex = -1
終了:私は、ページ名が渡されたときに、ページのインデックスを返すことになっている他の誰かのコードをオンラインで見つけ機能
===
私が何かしようとすると、これは、しかし、トップレベルのページのため正常に動作します:
をメッセージボックスは、ネストされたページのいずれかのために
(この例では、両方のページ4 & 5)(& fMpIndex(「PAGE5」)「このページのインデックスが」)、この方法は、以下の値を返す-1ページが存在しないことを示していますが、明らかにそうです。これは範囲の問題ですか?上記のコードは、ネストされたページではなくトップレベルのページのみを検索しますか?
特定のページを名前またはキャプションまたはその両方でプログラムで参照する最も安全で信頼性の高い方法は何ですか?私はそれがようなものになるだろうと仮定します。この例ではページstrip.which page.name(「PAGE5」)をuserform.which
、私は唯一の1人のユーザーフォームを持っていますが、私が知りたい:どのような場合私は2つのユーザーフォームを持っていましたか?また、上記の例では、2つのページストリップのどちらが参照されているかを指定しなければならないと私はすでに仮定しています...これは今のところ私の前提であり、必要ではないかもしれません。
理想的には、トップレベルページであるかネストされたページであるかにかかわらず、ユーザーフォームの各ページに絶対参照を使用する方法が必要です。それが実際に上記の仕様のようなものなら、誰かがサンプルコードを提供できますか?
があなたのスクリーンショットでは
ダン