たとえば、セル A1 に数式があるとします。A1 には =B1+C1 が含まれます。
B1には数字の5が含まれています
C1には数字の5が含まれます
次に、次の C# を使用して、ワークシートの UsedRange のオブジェクト配列を取得します。
Microsoft.Office.Interop.Excel.Range excelRange = excelWorksheet.UsedRange;
object[,] valueArray = (object[,])excelRange.get_Value(XlRangeValueDataType.xlRangeValueDefault);
ValueArray には 3 つのエントリが含まれます。
ValueArray[0,0]=10
ValueArray[0,1]=5
ValueArray[0,2]=5
代わりに C# を記述して、これが返されるようにするにはどうすればよいですか。
ValueArray[0,0]="=B1+C1"
ValueArray[0,1]=5
ValueArray[0,2]=5
要約すると、数式であればオブジェクト配列要素に数式を含めたいのですが、数式でない場合はオブジェクト配列要素に値を含めたいと思います。
ソリューション
object[,] formulaArray = (object[,]) excelRange.Formula;
object[,] valueArray = (object[,])excelRange.Value2;
そして、すべての式は「=」で始まります。したがって、ロジックの指示どおりにオブジェクト配列を混在させてください。