同じユーザーフォーム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ランキング
-
VBA シートをコピーする際に Co...
-
ワイルドカード「*」を使うとう...
-
VBA シート名が一致した場合の...
-
フォルダ内の全てのファイルに...
-
Excel-VBAでのファイルの開き方
-
別ブックをダイアログボックス...
-
vbaでvbaProjectのパスワード解...
-
【VBA】全シートの計算式を全て...
-
【ExcelVBA】インデックスが有...
-
エクセルVBAが途中で止まります
-
エクセルVBAで読み取りパスワー...
-
Excelマクロ 該当する値の行番...
-
【前回の続き続きです、ご教示...
-
VBA コードを実行すると画面が...
-
【マクロ】違うフォルダにある...
-
マクロのBeforeCloseイベントに...
-
VBで配列の差分を取りたいのですが
-
VBA 別ブックからコピペしたい...
-
EXCEL2013 シート内容を別ブッ...
-
VBAで別のブックにシートをコピ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
別ブックをダイアログボックス...
-
VBAで別ブックのシートを指定し...
-
Excelのマクロについて教えてく...
-
VBA 別ブックからコピペしたい...
-
Excelのマクロについて教えてく...
-
vbaでvbaProjectのパスワード解...
-
VBA コードを実行すると画面が...
-
【マクロ】アクティブセルにブ...
-
Excelのマクロについて教えてく...
-
VBAで別のブックにシートをコピ...
-
VBS Bookを閉じるコード
-
Excelのマクロについて教えてく...
-
【ExcelVBA】zip圧縮されたCSV...
-
【ExcelVBA】インデックスが有...
-
ACCESSVBA からExcelの他ブック...
-
vbaで他のブックに転記したい。...
-
【マクロ】違うフォルダにある...
おすすめ情報
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