Excelユーザーフォームでマルチページを使用しているのですが
テキストボックスに文字(パスワード的なもの)を入力したら
マルチページ内の特定ページのコントロールをenabled=trueにしたいのです(通常はenebledがtrue・falseの混合ページです)
先日よりFor Each~Next構文を使い始めたのですが勉強不足『オブジェクト・コレクション』の概念がいまいち理解できません。よろしくお願いします。
ネット上で調べてコピペしたのですがこのままだと他のページ、ページ外のコントロールまで影響するので良い方法をアドバイスしていただけますか?やはりコントロール個別にコードを書くしかないのでしょうか?
Private Sub TextPASS_Change()
If TextPASS.Value = "aaaa" Then
For Each Control In Controls
省略(enabled=true)
Next
Else
For Each Control In Controls
省略(enabled=false)
Next End If
End Sub
No.2ベストアンサー
- 回答日時:
こんにちは。
たとえば、マルチページの1番目のページ上のコントロールをループするには、
For Each control In UserForm1.MultiPage1.Pages(0).Controls
とします。
インデックスは0から始まるので、1ページ目はPages(0)と記述します。
ありがとうございます。
動作しました。コレクションとオブジェクトの部分を変えてみたのですが『オブジェクトが違います』『コレクションが不正です』『変数を設定してください』
などなどいろんなエラーが出て余計にパニックになっていました
ページはインデックスで指定するんですね。ページのオブジェクト名でずっと考えていたので
勉強になりました
No.1
- 回答日時:
今一ピンとこないんですが、こういうことですか?
Private Sub TextPASS_Change()
Dim b As Boolean
b=(TextPASS.Value = "aaaa")
For Each Control In Me.Controls ' <-”Controls”を”Me.Contrls”に変更
省略(enabled=b)
Next
End Sub
#「Option Explict」は指定しておきましょう。
この回答への補足
すいません、私自身もどのように説明すればいいのかわからず解っている情報のみ投稿させてもらいました。
簡単に言うとデータベースをマルチページ(page10まで存在します)にて管理しています
例Page1:入力、Page2:DB参照、Page3:統計マクロなど…
そこで特定のページの機能をパスワードにて使用可能となるようなコントロールをしようと考えています
上記のコードのままですと全ページループして全コントロールがenabled=Falseとなってしまうのです。
1ページ内だけでループさせるような、オブジェクト・コレクション記述があるのでしょうか?
よろしくお願いします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- Visual Basic(VBA) シート削除のマクロで「deleteメソッドは失敗しました」となります。助けてください! Sub 不要 6 2022/09/08 16:41
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- その他(Microsoft Office) エクセル VBAについて 2 2022/09/21 22:21
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル・VBA CheckBoxのオブ...
-
C#,vb.netで業務用アプリ開発と...
-
EXCELでactivexコントロールを...
-
カメラスクロールするのを動画...
-
【VB】テキストボックスのキー...
-
間違えて配置してしまったコン...
-
エクセル コントロールツール...
-
(VBA)スピンボタンの大量...
-
vb.netで画面のコントロールId...
-
サーバー上のブックを開けない...
-
エクセルVBAユーザーフォーム・...
-
ExcelVBAのコントロールの種類...
-
アクセス特有の書き方?
-
ACCESS2010のVBAでフォーム内ク...
-
VBAのフォームでTextBoxがいっ...
-
.Net ユーザーコントロールのイ...
-
Excel2003 カレンダーコントロ...
-
VB 継承した時に表示されるマー...
-
フォーカスの枠線を太くしたい
-
WinAPIで電卓をクリック
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
vb.netで画面のコントロールId...
-
EXCELでactivexコントロールを...
-
ExcelVBAでListViewが使用できない
-
(VBA)スピンボタンの大量...
-
エクセルVBAでオプションボタン...
-
C#で角が丸いテキストボックス
-
ユーザーフォームで動的(Me.Con...
-
アクセス特有の書き方?
-
間違えて配置してしまったコン...
-
コンボボックスの文字によるif...
-
VBAのエラーについて、”実行時...
-
変数をコントロール型で使用す...
-
chr関数の呼び出しで「プロ...
-
With~EndWithの省略部分と引数...
-
C#で自分のウインド・ハンド...
-
excelのリストボックスで選択し...
-
'ckbl' コントロールは作成され...
-
フォーム上の現在アクティブな...
おすすめ情報