
同じユーザーフォーム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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
Excel VBA 複数選択したリストボックスからテキストボックスに転記したいです。
Visual Basic(VBA)
-
VBA ユーザーフォームからSubプロージャ―に値を引き渡す方法
Visual Basic(VBA)
-
VBAで、シート間の転記するコードをFOR~NEXTで教えてください。
Visual Basic(VBA)
-
-
4
エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示
Visual Basic(VBA)
-
5
VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。
Visual Basic(VBA)
-
6
【Excel VBA】条件に合った行の表示・非表示を行う方法
Visual Basic(VBA)
-
7
VBA 重複チェック後に値をワークシートに転記する方法を教えてください。
Visual Basic(VBA)
-
8
エクセル VBA 処理スピードを上げたいのですが。
Visual Basic(VBA)
-
9
Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。
Visual Basic(VBA)
-
10
転記するVBAコードを教えて下さい。
Visual Basic(VBA)
-
11
vba
Visual Basic(VBA)
-
12
A列に重複した番号の行を条件を指定して削除
Visual Basic(VBA)
-
13
エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ
Visual Basic(VBA)
-
14
転記マクロ 変数が定義されていませんの解決法
Visual Basic(VBA)
-
15
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
16
エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします
Visual Basic(VBA)
-
17
VBAリストボックスで選択した後
Visual Basic(VBA)
-
18
マクロ実行時、自動で背景色を変えたい。 C列にあるチェックボックスをチェックするとB列に「TRUE」
Visual Basic(VBA)
-
19
該当セルの値を別ブックのシート名と一緒であればコピーしてほしい
Visual Basic(VBA)
-
20
VBAの計算について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
VBA シート名が一致した場合の...
-
5
VBの処理結果をEXCELシ...
-
6
日付ごとの集計マクロ
-
7
VBAで別ブックのシートを指定し...
-
8
【ExcelVBA】zip圧縮されたCSV...
-
9
VBで既存エクセルシートを新規...
-
10
エクセルマクロで、他ブックか...
-
11
VBAで複数のブックを開かずに処...
-
12
GetOpenFileNameで開いたブック...
-
13
ワイルドカード「*」を使うとう...
-
14
複数ブックから一つのシートに...
-
15
マクロを使って不特定のファイ...
-
16
拡張メタファイルにて貼り付け
-
17
VBA 実行時エラー 2147024893
-
18
エクセルVBAでテキストボックス...
-
19
Excel VBA 同じ名前のフォルダ...
-
20
表を別のブックのシートへ連続...
おすすめ情報
公式facebook
公式twitter
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