|
題名の件でご相談させていただいたものですが、新たに分からない点が浮上してご教授いただきたく再度投稿します。
りんさん wrote:
> 6枚もフォームを作成しなくても、それぞれに載せる予定のコントロールをフレームに載せて、表示を切り替える方が移動が簡単ではないかと。
> たとえばこんな方法です。
> 準備
> UserForm1にFrame1〜Frame6およびCommandButton1を配置(親がUserFormになるように)。
以下を全部UserFormに記述
'ココから================================
Dim II%
'
Private Sub CommandButton1_Click()
Dim JJ%
JJ% = II%
II% = (JJ% Mod 6) + 1
Me.Controls("Frame" & II%).Visible = True
Me.Controls("Frame" & JJ%).Visible = False
End Sub
Private Sub UserForm_Initialize()
For II% = 1 To 6
With Me.Controls("Frame" & II%)
.Left = Me.Left + 1 '位置調整(お好みで)
.Top = Me.Top + 1 '位置調整(お好みで)
.SpecialEffect=fmSpecialEffectFlat
If II% = 1 Then
.Visible = True
Else
.Visible = False
End If
End With
Next
'
II% = 1
End Sub
'ココまで================================
【48115】にて上記のようにご教授いただきました。
当方で実際に制作してみるとフレームが6枚では足りないことに気がつき、都合12枚までフレームを増やす目的で上記コード中の”6”の部分を”12”と置き換えて新たに最初からユーザーフォームを作成したのですがうまく作動しません。
(コマンドボタンを押すと実行時エラーになり、デバッグを選択すると
”Me.Controls("Frame" & JJ%).Visible = False”
の部分がハイライトになっているのですが、理解できなくて...)
お願いばかりで恐縮ですがご教授いただけますよう再度お願いいたします。
|
|