[[20160829111515]] 『配列をドロップダウンリストで表示』(mink) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『配列をドロップダウンリストで表示』(mink)

セルの入力規制を設定して、配列をドロップダウンリストで表示したいです。
配列は一次元配列です。
配列の要素には数値が入ってないものもあるため、以下のようにしています。

Dim Verary(30) As String
Dim Item As Variant

With Range("C3").Validation
For Each Item In Verary()
.Delete
If Item <> "" Then
.Add Type:=xlValidateList, Formula1:=Item
End If
Next Item
End With

しかしこのコードだとコンパイルは通るのですがドロップダウンリストで表示されません。
どのように直したらよいのでしょうか・・・。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


こんにちは

    With Range("C3").Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:=Join(Verary, ",")
    End With

これ位で、出来ませんか?

(ウッシ) 2016/08/29(月) 12:10


 >配列の要素には数値が入ってないものもあるため

 ということなので。

    Dim x As Long
    For x = LBound(Verary) To UBound(Verary)
        If Verary(x) = "" Then Verary(x) = vbTab
    Next

    With Range("C3").Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:=Join(Filter(Verary, vbTab, False), ",")
    End With

(β) 2016/08/29(月) 17:55


回答してくださったお二方、ありがとうございました。
βさんのコードで思った通りの機能が実装できました。
勉強させていただきました。
(mink) 2016/08/30(火) 15:17

こんにちは

あれ?

ダメでしたか?

Sub test()

    Dim Verary(30) As String
    Dim Item As Variant
    Dim i As Long

    For i = 0 To 30
        If i Mod 2 Then
            Verary(i) = i
        Else
            Verary(i) = ""
        End If
    Next

    With Range("C3").Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:=Join(Verary, ",")
    End With

End Sub

で確認すると数値が入ってない要素は無視されていたのですが?

(ウッシ) 2016/08/30(火) 15:32


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.