ExcelVBAでどうしても分からないところがあったため、質問させていただきました。
<Usrform上Control>
・UserForm1
・MultiPage-Page1
・CommandButton1(押すとPageが追加されます。Page1,Page2,Page3...)
・Combobox1
・TextBox1
<現在可能な動作>
UserForm1上にMultiPageのPage1を設定しています。
CommandButton1を押すとPage2が追加され、Page1上に設定されてあるCombobox1とTextBox1をPage2上に追加します。
<行ないたい動作>
現在は、Page1上でCombobox1の値が変更された時に、Page1上のTextBox1の値が変更されるように設定していますが、
Page2上のCombobox1の値が変更された時に、Page2上のTextBox1の値を変更することは出来ますでしょうか?
使用Versionは、Excel 2003です。
何卒、よろしくお願いします。
<Code>
Private Sub CommandButton3_Click()
Dim myCmbbx As MSForms.ComboBox
Dim myTxtbx As MSForms.TextBox
With MultiPage1
.Pages.Add , , .Value + 1
.Value = .Value + 1
End With
With MultiPage1.SelectedItem
Set myCmbbx = .Controls.Add("Forms.Combobox.1", "ComboBox1", True)
With myCmbbx
.AddItem "AAA"
.AddItem "BBB"
.AddItem "CCC"
End With
Set myTxtbx = .Controls.Add("Forms.TextBox.1", "TextBox1", True)
With myTxtbx
.MultiLine = True
End With
End With
End Sub
Private Sub ComboBox1_change()
If ComboBox1.Text = "BBB" Then
TextBox1.Value=1234567
End If
End Sub
No.1ベストアンサー
- 回答日時:
クラスモジュールを追加すれば出来そうですよ
myPageClassというクラスモジュールを追加
Private WithEvents Cb as MSForms.ComboBox
Private Tx as MSForms.TextBox
Public Sub SetCtl( objCb as MSForms.ComboBox, objTx as MSForms.TextBox)
Set Cb = objCB
With Cb
'表示位置などを調整
.Left = 6
.Top = 6
.Width = 100
'アイテムの追加
.AddItem "AAA"
.AddItem "BBB"
.AddItem "CCC"
End With
Set Tx = objTx
With Tx
.Left = 6
.Top = 36
.Width = 100
End With
End Sub
Private Sub Cb_Change()
if cb.Text = "BBB" then
tx.Text = "1234567"
End If
End Sub
UserForm1のコードの冒頭で
dim objClass(20) as myPageClass
を記述
CommadButton3_Clickイベントに
dim cb as MSForms.ComboBox, tx as MSForms.TextBox
dim pg as MSForms.Page
dim ss as string
With MultiPage1
ss = "Page" & .Pages.Count+1
set pg = .Pages.Add(ss)
.Value = .Pages.Count - 1
with pg.Controls
set cb = .add("Forms.ComboBox.1", "ComboBox1", TRUE )
set tx = .add("Forms.TextBox.1", "TextBox1", True)
End with
objClass(.Pages.Count) = new myPageClass
objClass(.Pages.Count).SetCtl cb, tx
End With
といった具合です
Page毎に違うイベント処理となるとこの方法では無理ですけど …
おおっ、ありがとうございます!!
クラスモジュールという概念がいまいち不明だったため、どうしても行いたい動作が実現出来ませんでした。
Page毎の違う処理がまだ出来ていませんが、今のところ十分過ぎる程です。
これを機にもっと調べていきます。
また何かありましたらよろしくお願いします。
ありがとうございました。
VBA Masterになるには、まだまだ先が見えないですねぇ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/20 14:46
- その他(ギャンブル) BOって何歳でも始めれるんですか?当たる確率的には競馬より全然高い50%とかなんですか? 2 2022/09/06 15:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:07
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 16:59
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
VB初心者。小数点以下の表示で...
-
値を返さないコード パス
-
PL/SQLでのTO_DATEの時間取得に...
-
sin(π)が0にならないです
-
変数名の取得
-
textboxとLabelを動的に変更する
-
Excel VBA 複数選択したリスト...
-
[VBA]選択範囲の下から上に処理...
-
Excel VBAのリストボックスの値...
-
Dateserialで データ抽出
-
VBA 追加したMultiPageでのイベ...
-
スクロールバーの境界値は?
-
VB.NETでコンボボックスの1行目...
-
【C++/CLI.NET】コンボボックス...
-
VBA ドロップダウンリストを残...
-
ASPの変数の値をJAVA Script内...
-
C#(Windowsアプリ)
-
代入したのに値が更新されない...
-
テキストボックスで入力
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
値を返さないコード パス
-
VB.NETでコンボボックスの1行目...
-
Excel VBAのリストボックスの値...
-
C#の質問です
-
Vba TextBox1.ControlSourceに...
-
VB初心者。小数点以下の表示で...
-
PL/SQLでのTO_DATEの時間取得に...
-
変数名の取得
-
Excel VBA 複数選択したリスト...
-
マクロ 特定のセル値のみクリ...
-
Powershellのparamについて
-
フォーム間での変数の受け渡し
-
Excel vba ユーザーフォームテ...
-
vb6のVSFlexGridで選択行、列の...
-
ユーザーフォームのテキストボ...
-
シーケンサで最小値を保持する
-
ISDBNULLをスルーしてDBNULLが...
-
マクロで奇数と偶数の値を2か所...
-
【C++/CLI.NET】コンボボックス...
おすすめ情報