Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


46741 / 76732 ←次へ | 前へ→

【34958】Re:ユーザーフォームを表示させたまま再loadする。
質問  carerra  - 06/2/16(木) 21:58 -

引用なし
パスワード
   こんばんわ。返信が遅くなり申し訳ないです。

▼Kein さん:
>何かよく分かりませんね・・。
>ユーザーフォームはいちいち Load しなくても、Showメソッドのみで
>表示できます。

Loadを使ったのは、VBAの参考書を買っているのですが、それに乗っていたのをそのまま引用したため、Loadを使っていました。Keinさんの言われるとおり、Showだけで表示できました。

>>入力表のユーザーフォームを表示したまま、再Loadをし、コンボボックス3にデータを反映
>再Loadなんかしなくても、ComboBox1 と 2 のChangeイベントだけで
>ComboBox3 のリストを変更することが出来るはずです。ただし、すでに現在
>何かのリストがあるとすれば(ListCountで判定可能)、それを Clear してから
>AddItem なりをしないといけません。また、表示に問題があるとするなら
>Repaintメソッド を使って再描画を試みてく下さい。

以下が、現在作成中のものなのですが・・・

業者一覧のシート
 A  B  C   D  E  F   G
1番号 コード 業者名 住所 代表 種類1 種類2
2                       この欄で抽出条件を設定。

4番号 コード 業者名 住所 代表 種類1 種類2




503 までが入力欄になります。

510番号 コード 業者名 住所 代表 種類1 種類2
511



1009 までが抽出先の範囲に設定しています。

ユーザーフォム1が案内のメニュー表になっており
コマンドボタン1で入力表を呼び出します。
-----------------------------------------------------------
Private Sub CommandButton1_Click()
案内メニュー.Hide
入力表.Show
End Sub
----------------------------------------------------------
ユーザーフォム2が入力表となっています。
Private Sub UserForm_Initialize()
  'これはリスト表示の参照先です。
  業者区分1.List = Sheets("基礎データ").Range("X3:X6").Value←で業者一覧のシートの抽出条件を設定します
  業者区分2.List = Sheets("基礎データ").Range("Y3:Y6").Value←同じく
  指名1.List = Sheets("業者一覧").Range("C511:C1009").Value←で抽出した業者を表示させたいのですが、最初にこの入力表を呼び出したときにある、業者一覧シートの抽出先の業者しか表示しません。
  指名2.List = Sheets("業者一覧").Range("C511:C1009").Value
  ・
  ・
  ・
  指名89.List = Sheets("業者一覧").Range("C511:C1009").Value
  指名90.List = Sheets("業者一覧").Range("C511:C1009").Value

業者区分及び指名はコンボボックスです。
--------------------------------------------------------------------
Private Sub 業者区分1_Change()
Dim rcd As Range
Set rcd = Sheets("業者一覧").Range("F2")
rcd.Value = 業者区分1.Value

Sheets("業者一覧").Select
Range("F2").Select
  Range("A4:G503").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
    "A1:G2"), CopyToRange:=Range("A510:G1009"), Unique:=True

End Sub
-----------------------------------------------------------------------
必要と思われる箇所を抜粋してみました。VBAは初心者なので意味もないことを書いているかもしれませんが・・・

業者区分1のChangeイベントのあとに指名1のコンボボックスを表示させても、反映されておりません。

Keinさんの言われるとおり、何らかのリストがあり、それを Clear してから、AddItemをすれば良いのでしょうか?
0 hits

【34891】ユーザーフォームを表示させたまま再loadする。 carerra 06/2/15(水) 22:52 質問
【34909】Re:ユーザーフォームを表示させたまま再loadする。 Kein 06/2/16(木) 0:54 発言
【34958】Re:ユーザーフォームを表示させたまま再loadする。 carerra 06/2/16(木) 21:58 質問

46741 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free