Excel VBA質問箱 IV

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

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


20137 / 76732 ←次へ | 前へ→

【62018】Re:隣列を条件で自列の履歴をリストに設定するには
発言  もも  - 09/6/17(水) 11:18 -

引用なし
パスワード
   ▼めがねチャン さん:
こんにちは

>このような入力画面があります。
>Bの列に  Bの列の入力履歴を リストとして設定しました。
入力画面と履歴が同じというのがわかりにくいのですが
B列の下に入力していく・・・という事と読み替えて

必要なのはA列と同じ項目の重複しないリストなので
Dictionaryオブジェクトを使って全てリストアップする必要も
無いと思いますので、一致した項目のリストを作成するように
サンプルを作ってみました。

結構、変更を加えてしまっているので
まずはサンプルを解読してみてください。

Public Function GetSummary(RR As Range) As String
Dim strKey As String
Dim K As String
Dim V As Variant
Dim i As Long
strKey = RR.Offset(, -1).Value
V = Me.Range(Me.Range("A1"), RR.Offset(-1)).Value
For i = 1 To UBound(V)
 If V(i, 1) = strKey And Not K Like "*" & V(i, 2) & "*" Then
  K = K & "," & V(i, 2)
 End If
Next i
GetSummary = Mid$(K, 2)
End Function
'****************************************


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim myList As String
If Target.Column = 2 Then
 If Target.Offset(, -1).Value = "" Then Exit Sub
 myList = GetSummary(Target)
 With Target.Validation
  .Delete
  .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=myList
  .ShowError = False
 End With
End If
End Sub

0 hits

【62014】隣列を条件で自列の履歴をリストに設定するには めがねチャン 09/6/17(水) 1:22 質問
【62018】Re:隣列を条件で自列の履歴をリストに設定... もも 09/6/17(水) 11:18 発言
【62027】Re:隣列を条件で自列の履歴をリストに設定... めがねチャン 09/6/17(水) 13:52 お礼
【62029】Re:隣列を条件で自列の履歴をリストに設定... もも 09/6/17(水) 13:57 発言
【62030】Re:隣列を条件で自列の履歴をリストに設定... めがねチャン 09/6/17(水) 14:08 お礼

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