純粋に VBA を使用してデータ検証セルを作成しようとしています。問題は、検証済みリスト内の項目の 1 つがカンマを含む Excel 数式 (次のコードの IF() など) である場合、エラーが生成されることです。
Dim str As String
str = "=IF(SUM(A1:A2) = 0, ""Zero"", SUM(A1:A2)) , Item 2 , Item 3 , Item 4"
s1.Range("B6").Validation.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=str
エラー (実行時エラー 1004) が生成されるのは、最初のカンマで文字列が区切られているためです。したがって、検証の最初の項目は"=IF(SUM(A1:A2) = 0"
. これを回避するために、コンマのエスケープ文字 (C の \ など) があることを願っています。検証済みのリストを次のように表示したい:
<result of IF() function>
Item 2
Item 3
Item 4
注: 検証済みデータに範囲を使用することはできません。ユーザーが範囲を削除すると、スプレッドシートが破損します。