3
つまり、Marshal.ReleaseComObject()
で公開する必要がありますか? 私はRange
ですが、リリースする必要がありますが、Formula
についてはわかりません。`Range.Formula`はCOMオブジェクトですか?
つまり、Marshal.ReleaseComObject()
で公開する必要がありますか? 私はRange
ですが、リリースする必要がありますが、Formula
についてはわかりません。`Range.Formula`はCOMオブジェクトですか?
ExcelオブジェクトモデルでFormula
は文字列であり、オブジェクトではありません。
エクセルVBAで簡単なテスト:
Sub test()
Dim R As Variant
Set R = Range("A1")
Debug.Print TypeName(R)
Debug.Print TypeName(R.Formula)
End Sub
それは印刷されます。
Range
String
はあなたに感謝。私は混乱していたと思います。なぜなら、戻り値の型はObjectであり、VBAオブジェクトブラウザではVariant型であるからです。それはVBAで文字列として表示される可能性がありますが、インターオペラのObjectでラップされますか? – Mr1159pm
@ Mr1159pm interopを使用するときにどのような種類のラッピングが行われるのか本当にわかりません。ドットネット文字列がVBA文字列ではないようなオブジェクトであれば、そのようなことは起こりそうですが、たとえそうであっても、数式プロパティが別のオブジェクトであるとは思わないでしょう親レンジオブジェクトが解放されたときにガベージコレクションされます。 –