
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のキャプションとして表示されてしまいます。
どのようにしたら良いでしょうか?
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
コンボボックスにどのような値があるかわかりませんが、
>If UserForm1.ComboBox1 = Worksheets("Sheet1").Select Then
If UserForm1.ComboBox1.Text = "Sheet1" Then
とかではないの?
或いは
UserForm2.Caption = Worksheets(UserForm1.ComboBox1.Text).Range("B3").Value
の一行だけとか?
なるほど。
If UserForm1.ComboBox1.Text = "Sheet1" Then
と置き換えたらすぐに出来ました!
大変助かりました。ありがとうございました!
No.2
- 回答日時:
こんにちは。
ご質問の内容から見て、勉強を兼ねてコードを組んでらっしゃると
思いました。ので具体的なコードは省略して調べるとっかかりを
ご提案します。
具体的なコードだけ知りたいということでしたら、n-jun様の回答を
参考にされる方がよいと思います。
今のコードでは常に最後のElseに該当していると思います。
もしガイドブック的なものをお持ちなら、デバッグ実行という方法を
調べて実行してみましょう。そして、
UserForm1.ComboBox1
Worksheets("Sheet1").Select
の二つにどんな値が入っているかを見てみましょう。実際には、
それぞれ色んな項目(プロパティ)があることが判りますし、
その中の何を使えばいいのかも調べられるようになります。
もし、こんな風に自分で調べてみたいという方針だけれども進め方が
見えないということでしたらまた聞いてください。
ありがとうございます。
ガイドブックで独学で勉強をしているもので、
どうやって調べたら良いか分からずにやみ雲に
コードを組んでいる状態なので、とても参考になりました。
デバック実行で調べてみます。
また質問することがあるかと思いますが、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) VBA リスト表示していますが 3 2023/05/18 12:12
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) userformでSheetを選択して開くコード 1 2023/05/15 16:27
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
コンボボックスにリストが表示されません・・・
Excel(エクセル)
-
-
4
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
5
UserForm1.Showでエラーになります。
工学
-
6
Excel VBAにてUserFormのTextBoxにセルの値を色情報込みで反映させる方法があれば教えてください。
会計ソフト・業務用ソフト
-
7
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
8
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
Excel(エクセル)
-
9
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
10
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
11
ユーザーフォームのテキストボックスに前回入力した値を表示する Excel
Visual Basic(VBA)
-
12
エクセルVBA「リストボックスで選択した値をテキストボックスで変更してシート上セルに反映したい」
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルに見えない文字(JISX0...
-
Outlook VBAについて
-
フィルターかけた後、重複を除...
-
gccの最適化オプションで挙動が...
-
JavaScriptの定数名が取り消し...
-
System.Timers.Timer について
-
エクセルVBA ユーザーフォーム...
-
Accessでの抽出で完全一致。
-
MessageBoxで表示される文字列...
-
エクセルが重くなるのを回避したい
-
DocumentCompleteイベントプロ...
-
access2021 VBA メソッドまたは...
-
インターネットFAXにて複数の宛...
-
エクセルVBAコードで教えて下さ...
-
変数名「cur」について
-
ユーザーフォームに2つのコン...
-
MIPSコードへの変換
-
VB2005 RowFilterのパラメータ...
-
CString のGetAt で正しく文字...
-
コンボボックスの複数列表示に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1日に1人がこなせるプログラム...
-
access2021 VBA メソッドまたは...
-
JANコードとPOSコードは同じ?
-
Exel VBA 別ブックから該当デ...
-
Nullの使い方が不正です。
-
access2003 クエリSQL文に...
-
JavaScriptの定数名が取り消し...
-
オートフィルタで抽出結果に 罫...
-
PreviewKeyDownイベントが2回...
-
エクセルに見えない文字(JISX0...
-
VBAでファイルオープン後にコー...
-
Excelシート上で右クリックがで...
-
変数名「cur」について
-
Excel VBA素人です。VBAで図形...
-
【VB6】実行ファイルとした後、...
-
VBA 現在のセル番地を記憶、復...
-
COBOLの文法
-
ASCIIコードを文字に変換したい
-
wechatアプリについての質問で...
おすすめ情報