FormulaLocal プロパティ (および Formula プロパティ) は、数式バーから入力するのと同じ数式である文字列 (または文字列リテラル) を想定しています。無効な文字列リテラルを設定しようとしています:
"=concatenate(vlookup(" & i & ", inputs!A5:B43,2,false), " some words")""
'< string literal >< VBA >< string literal >< VBA ><string literal>
2 つの文字列を結合するには、 を使用する必要があります。使用&
しないと、無効な VBA コードになります。
"=concatenate(vlookup(" & i & ", inputs!A5:B43,2,false), " & some words & ")""
'< string literal >< VBA >< string literal >< VBA ><string>
文字列リテラルは、開始と終了の二重引用符で定義されます。文字列リテラルに二重引用符を挿入するにはどうすればよいですか? VBA では、二重引用符を 2 つ置きます。
"=concatenate(vlookup(" & i & ", inputs!A5:B43,2,false), ""some words"")"
'< string literal >< VBA >< string literal >
'Resulting formula (i=5): =concatenate(vlookup(5, inputs!A5:B43,2,false), "some words")
これはすべて VBA レベルであることに注意してください。結果の文字列も、Excel で有効な数式である必要があります。たとえば、i
が数値ではなく単語の場合、式は次のようになります。
=concatenate(vlookup(a word, inputs!A5:B43,2,false), "some words")
これは無効な Excel 構文です。この場合の解決策は、 を二重引用符で囲むことi
です。
"=concatenate(vlookup(""" & i & """, inputs!A5:B43,2,false), ""some words"")"