|
▼INA さん:
>>1.オプションボタン1を選択した状態で社員AとBを選択。
>何が変化するのか、よく分からないのですが?
>社員AとBとは何ですか?
>
>>2.オプションボタン2を選択し社員XとYを選択。
>社員XとYとは何ですか?
INAさん、極力簡潔に書きたいと思って書いたのですが
結局説明が足りない書き方で申し訳ありませんでした。
以下実際私が使用しているコードとあわせて記入させていただきます。
---------------------------------------------------------------------
○オプションボタン1を選択すると
Private Sub OptionButton1_Click()
ListBox1.Clear
Sheets("DB").Activate
Dim i
For i = 3 To 300
If Sheets("DB").Cells(i, 20).Value = "本社" Then
ListBox1.AddItem Sheets("DB").Cells(i, 3).Value
ListBox1.Selected(0) = True
End If
Next i
End Sub
以上のコードでワークシート("DB")からリストボックス1へ
アイテム(社員の名前)を表示させています。
---------------------------------------------------------------------
○オプションボタン2を選択すると
If Sheets("DB").Cells(i, 20).Value = "支店" Then
以外は上と同じコードでListBox1への表示対象を変えています。
---------------------------------------------------------------------
○ListBox1のアイテムを選択した状態でコマンドボタン1をクリックすると
Private Sub CommandButton1_Click()
Dim i
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ListBox2.AddItem ListBox1.List(i)
ListBox1.RemoveItem (ListBox1.ListIndex)
End If
Next i
End Sub
以上のコードからListBox1からListBox2へ項目が移るようにしています。
---------------------------------------------------------------------
1.オプションボタン1からListBox1へ表示される本社社員(「A」「B」「C」「D」)のうち
「A」と「B」をListBox2へ表示させたあとにオプションボタン2を選択し、
ListBox1へ表示された支店社員(「W」「X」「Y」「Z」)のうち「X」「Y」をListBox2へ追加。
(この状態でListBoxへは「A」「B」「X」「Y」が表示されています)
2.1.の作業後に再度オプションボタン1を選択すると、
(先のコードでは当たり前でしょうが)本社社員「A」「B」も
ListBox1へ表示されてしまいます。
(コマンドボタン1で再度ListBox2へ追加出来てしまいます)
最終的にListBox2にある項目(社員名)のみ別シートへ出力したいのですが、
ListBox2に既に表示されている名前はListBox1へは表示されないように
したいのです。
以上で私のやりたいことが理解していただけるかどうか不安ですが、
良いお知恵がありましたら宜しくお願い致します。
|
|