同じユーザーフォーム2に2つコンボボックスがあります。
1つ目のコンボボックスは動作します。(別ブックのシート)
2つ目が動きません。(同じブックの別シート)どうすれば動作しますか?助けてください。
Private Sub UserForm_Initialize() ←1つ目のコンボボックス1
Dim wb As Workbook
Dim sh As Worksheet
Dim lastrow As Long
Const TargetBook As String = "請求.xlsm"
Dim myDesktop As String
Dim wsh As Object
Set wsh = CreateObject("Wscript.Shell")
myDesktop = wsh.SpecialFolders("Desktop")
Set wsh = Nothing
'ブック名:請求のフルパスを指定
Set wb = Workbooks.Open(myDesktop & "\" & TargetBook)
Set sh = wb.Worksheets("請求先")
lastrow = sh.Cells(sh.Rows.Count, "C").End(xlUp).Row
With ComboBox1
.List() = sh.Range("C2:C" & lastrow).Value
.Style = fmStyleDropDownList
End With
wb.Close False
'初期化処理
Worksheets("受注IMP").Activate
End Sub
Private Sub ComboBox1_Change()
Worksheets("受注IMP").Range("B2").Value = ComboBox1.Text
End Sub
Private Sub コンボ2() ← 2つ目のコンボボックス2
Dim lastrow As Integer
Dim i As Integer
lastrow = Worksheets("荷主").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lastrow
ComboBox1.AddItem Worksheets("荷主").Range("C" & i).Value
Next i
End Sub
Private Sub ComboBox2_Change()
Worksheets("受注IMP").Range("B3").Value = ComboBox2.Value
End Sub
No.3ベストアンサー
- 回答日時:
こんにちは
問題があるかも知れない箇所
Userform2---
Private Sub コンボ2呼ぶ()
'初期化処理
Worksheets("受注IMP").Activate
Call S_ComboBox2 '← 呼び出す
End Sub
これはPrivate Sub コンボ2() 当該ご質問と同じ間違いをしています
#1様の回答に重複しますが
> Private Sub コンボ2呼ぶ() と言うのはイベントプロシージャではありません(プロシージャの意味は調べてください)
従ってボタンに登録とかイベント内からCallステートメントで実行するとか・・何だかの方法で(呼び出し)実行しなければなりません
マクロを実行する
https://support.microsoft.com/ja-jp/office/%E3%8 …
Callステートメント
https://excel-ubara.com/excelvba1/EXCELVBA405.html
Userform2--- イベントプロシージャから呼ぶ
対象の標準モジュールは明示しましょう
Private Sub UserForm_Initialize()
--割愛
wb.Close False
Call Module1.S_ComboBox2
'初期化処理
Worksheets("受注IMP").Activate
End Sub
更に Module1
Sub S_ComboBox2()
Dim lastrow As Integer
Dim i As Integer
lastrow = Worksheets("荷主").Cells(Rows.Count, 3).End(xlUp).Row
For i = 2 To lastrow
UserForm2.ComboBox2.AddItem Worksheets("荷主").Range("C" & i).Value
Next i
End Sub
ーーー
なおし(想像での不具合要素)
Cells(Rows.Count, 3) Cなので特別の意図が無いのであれば 3です
>ComboBox2は動きません。
この書き方だと誰も分かりません。具体的に事象を説明しましょう
標準モジュールの使い方、Call の仕方等勉強になりました。プロシージャについては、大きな命令の括りとしか認識できておらず、使い方や書き方などもきちんと理解できていない状況です。今回も大変お世話になり、恐縮です。本当にありがとうございました。
最後に補足についてですが、何故かAIのチェックに引っかかってしまい、質問することができず苦肉の策であのような書き方になってしまいました。申し訳ありませんでした。
No.2
- 回答日時:
こんにちは
既に回答に出ている事と プラス
ComboBox1.AddItem Worksheets("荷主").Range("C" & i).Value は
コントロールのComboBox1に対して結果を出力しますが 対象はコンボ2なので
ComboBox2.AddItem Worksheets("荷主").Range("C" & i).Value
としてください
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。 6 2023/03/21 16:12
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
コンボボックスにリストが表示されません・・・
Excel(エクセル)
-
エクセルVBA ユーザーフォーム 複数のコンボボックス 同一リスト
Excel(エクセル)
-
-
4
UserForm1.Showでエラーになります。
工学
-
5
VBAコンボボックスの内容が反映されない
その他(プログラミング・Web制作)
-
6
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
excelのInitializeイベントとActivateイベントについて
Excel(エクセル)
-
9
VBAコンボボックスで選択した値をシートに転記したい
Visual Basic(VBA)
-
10
ユーザーフォーム上のコンボボックスのリンク先はどうやって指定?
Excel(エクセル)
-
11
TextBoxから数字が文字として入力される?
Visual Basic(VBA)
-
12
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
13
同じコンボボックスを二つ以上作る方法
Visual Basic(VBA)
-
14
VBA 数式を残して値をクリアについて
Excel(エクセル)
-
15
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
16
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
17
EXCEL VBAのコンボボックスに取り込むリストについて
Excel(エクセル)
-
18
エクセルで貼り付けたオブジェクトの画像をユーザーフォームのイメージコントロールで表示する方法
Excel(エクセル)
-
19
入力済み、選択したセルに連動した行のデータをユーザーフォームで呼び出すには
Excel(エクセル)
-
20
ユーザーフォームのテキストボックスに前回入力した値を表示する Excel
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
VBAで別ブックのシートを指定し...
-
別ブックをダイアログボックス...
-
VBA 別ブックからコピペしたい...
-
Excel2007VBAファイルの表示に...
-
VBで既存エクセルシートを新規...
-
別ブックの列同士の値が一致し...
-
【ExcelVBA】zip圧縮されたCSV...
-
エクセルVBA
-
VBA同じシートの別ブックに転記...
-
複数シート名とブック名が一致...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
現在開いているbook全てを対象...
-
VBA コードを実行すると画面が...
-
Excelファイルを開くとき、読み...
-
VBAでざっくりとした質問になり...
-
フォルダ内のExcelファイルを全...
-
vbaで他のブックに転記したい。...
-
VBS Bookを閉じるコード
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
VBA コードを実行すると画面が...
-
VBAで別のブックにシートをコピ...
-
VBAで別ブックのシートを指定し...
-
【Excel VBA】書き込み先ブック...
-
Excelマクロ 該当する値の行番...
-
【ExcelVBA】zip圧縮されたCSV...
-
[Excel]ADODBでNull変換されて...
-
【ExcelVBA】インデックスが有...
-
Excel2007VBAファイルの表示に...
-
VBAで複数のブックを開かずに処...
-
vbaで他のブックに転記したい。...
-
エクセルマクロで、他ブックか...
-
vbaでvbaProjectのパスワード解...
-
VBA 実行時エラー 2147024893
-
【マクロ】違うフォルダにある...
おすすめ情報
ComboBox2は動きません。どこかに不足があるのですね。
標準モジュール module1 ---
Sub S_ComboBox2()
Dim lastrow As Integer
Dim i As Integer
lastrow = Worksheets("荷主").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lastrow
UserForm2.ComboBox2.AddItem Worksheets("荷主").Range("C" & i).Value
Next i
End Sub
Userform2---
Private Sub コンボ2呼ぶ()
'初期化処理
Worksheets("受注IMP").Activate
Call S_ComboBox2 '← 呼び出す
End Sub