プロが教える店舗&オフィスのセキュリティ対策術

度々、お世話になっており、今回もご教授お願いしたいです。

VBAの“Sheet1”に2つのコンボボックスのプログラムを作成しました。
Private Sub ComboBox1_Change()
Private Sub ComboBox2_Change()
どちらも選択(fmStyleDropDownList)のみです。

しかし、Excel起動時にコンボボックスの内容が登録されないため、
ThisWorkbookの【Private Sub Workbook_Open()】 で
Private Sub ComboBox1_Change()
Private Sub ComboBox2_Change()
↑この2つを実行したいのですが、、、、

なんと記述したらよいかわからず、行き詰っています。。。

Private Sub Workbook_Open()
ComboBox1_Change() = ture
End Sub

↑こんな感じであれやこれや試してはいますが・・・

記述方法をご教授ください。よろしくお願いします。

A 回答 (4件)

あ、モジュールが別なんですね。


#1はミスです。失礼orz

[Sheet1]
Private Sub ComboBox1_Change() '←Privateになっていると、同じモジュール内からしか呼び出せません
 'コンボボックスの内容を登録
End Sub

'初期処理
Public Sub Initialize() '←Publicだとどのモジュールからでも呼び出せます
 ComboBox1_Change
 ComboBox2_Change
End Sub

[ThisWorkbook]
Private Sub Workbook_Open
 Sheet1.Initialize
End Sub
    • good
    • 0
この回答へのお礼

ご教授通りやったところ、エラー出てしまいましたが・・・
参考にさせてもらい、イニシャライズのとこでコンボボックスの内容を登録しまして、達成したい動きになりました!

ありがとうございました!!

お礼日時:2014/02/06 11:50

Call ComboBox1_Change()



でいいです。
    • good
    • 0
この回答へのお礼

ご回答有り難うございました。

Callではエラーでダメでしたが・・・方法を変えたところなんとかできました。

ありがとうございました!

お礼日時:2014/02/06 11:52

???



コンボボックスに何を入力したいのか
まずはそこからです。

また、
ComboBox1_Change() = ture
このような記述は無いかと。

また、シートに記述しているのなら
自動的に実行されるものだと思いますが…
    • good
    • 0
この回答へのお礼

ご回答有り難うございました。

自動的に実行されないため、質問させていただきました。。。

疑問になっている説明が不足していたかもしれません。

お礼日時:2014/02/06 11:54

Private Sub Workbook_Open()


 ComboBox1_Change '引数がない場合は、実行したいSubの名前を書くだけでOK
 ComboBox2_Change
End Sub
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!