VBA を使用して、配列のサイズに応じて長さが異なるドロップダウン リストを追加しようとしています。次のコードではエラーは発生しませんが、実際にはデータ検証が追加されません...
リストを作成するには:
Dim RegionList as String
RegionList = ""
For i = LBound(x) To UBound(x)
RegionList = RegionList + x(i) & ", "
Next
検証を作成するには:
RegionList = Left(RegionList, Len(RegionList) - 2) 'Remove trailing Comma/Space
With Sheet2.Range("C1").Validation 'Insert dropdown to cell C1
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=RegionList
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
次の式でこのコードを実行する前に、シートが保護されていることに注意してください。
Sheet2.Protect Password="xxx", DrawingObjects = False, UserInterfaceOnly = True
編集:ドロップダウンリストを表示したい特定のセルは保護されていないため、シートの保護に関するビットはおそらく無関係です。
どんなアイデアでも大歓迎です!