アプリ版:「スタンプのみでお礼する」機能のリリースについて

ExcelVBA初心者です。
ユーザーフォーム1でsheet1を選択した場合→次のユーザーフォーム2ではsheet1の内容を、
sheet2を選択した場合→sheet2の、sheet3を選択した場合→sheet3の
内容をそれぞれキャプションとして表示したいのですが、
なかなか上手く出来ません。

Private Sub UserForm_Initialize()

If UserForm1.ComboBox1 = Worksheets("Sheet1").Select Then
UserForm2.Caption = Worksheets("Sheet1").Range("B3").Value

ElseIf UserForm1.ComboBox1 = Worksheets("Sheet2").Select Then
UserForm2.Caption = Worksheets("Sheet2").Range("B3").Value

Else
UserForm1.ComboBox1 = Worksheets("Sheet3").Select
UserForm2.Caption = Worksheets("Sheet3").Range("B3").Value

End If
End Sub
としてみたのですが、どのシートを選択してもsheet3の内容が
ユーザーフォーム2のキャプションとして表示されてしまいます。
どのようにしたら良いでしょうか?
よろしくお願い致します。

A 回答 (2件)

こんにちは。



ご質問の内容から見て、勉強を兼ねてコードを組んでらっしゃると
思いました。ので具体的なコードは省略して調べるとっかかりを
ご提案します。

具体的なコードだけ知りたいということでしたら、n-jun様の回答を
参考にされる方がよいと思います。

今のコードでは常に最後のElseに該当していると思います。
もしガイドブック的なものをお持ちなら、デバッグ実行という方法を
調べて実行してみましょう。そして、
UserForm1.ComboBox1
Worksheets("Sheet1").Select
の二つにどんな値が入っているかを見てみましょう。実際には、
それぞれ色んな項目(プロパティ)があることが判りますし、
その中の何を使えばいいのかも調べられるようになります。

もし、こんな風に自分で調べてみたいという方針だけれども進め方が
見えないということでしたらまた聞いてください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
ガイドブックで独学で勉強をしているもので、
どうやって調べたら良いか分からずにやみ雲に
コードを組んでいる状態なので、とても参考になりました。
デバック実行で調べてみます。
また質問することがあるかと思いますが、よろしくお願いします。

お礼日時:2009/03/29 15:52

コンボボックスにどのような値があるかわかりませんが、



>If UserForm1.ComboBox1 = Worksheets("Sheet1").Select Then
If UserForm1.ComboBox1.Text = "Sheet1" Then

とかではないの?
或いは
UserForm2.Caption = Worksheets(UserForm1.ComboBox1.Text).Range("B3").Value
の一行だけとか?
    • good
    • 0
この回答へのお礼

なるほど。
If UserForm1.ComboBox1.Text = "Sheet1" Then
と置き換えたらすぐに出来ました!
大変助かりました。ありがとうございました!

お礼日時:2009/03/29 15:47

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

このQ&Aを見た人はこんなQ&Aも見ています