diff options
-rw-r--r-- | oovbaapi/ooo/vba/excel/XRange.idl | 2 | ||||
-rw-r--r-- | sc/source/ui/vba/vbarange.cxx | 33 | ||||
-rw-r--r-- | sc/source/ui/vba/vbarange.hxx | 4 |
3 files changed, 34 insertions, 5 deletions
diff --git a/oovbaapi/ooo/vba/excel/XRange.idl b/oovbaapi/ooo/vba/excel/XRange.idl index 8630b87241ba..32f75a309795 100644 --- a/oovbaapi/ooo/vba/excel/XRange.idl +++ b/oovbaapi/ooo/vba/excel/XRange.idl @@ -59,6 +59,8 @@ interface XRange [attribute] any Formula; [attribute] any FormulaArray; [attribute] any FormulaR1C1; + [attribute] any FormulaLocal; + [attribute] any FormulaR1C1Local; [attribute, readonly] long Count; [attribute, readonly] long Row; [attribute, readonly] long Column; diff --git a/sc/source/ui/vba/vbarange.cxx b/sc/source/ui/vba/vbarange.cxx index bb732f56feb8..4837f5525aa3 100644 --- a/sc/source/ui/vba/vbarange.cxx +++ b/sc/source/ui/vba/vbarange.cxx @@ -1669,31 +1669,54 @@ ScVbaRange::getFormulaValue( formula::FormulaGrammar::Grammar eGram ) } +uno::Any +ScVbaRange::getFormula() +{ + return getFormulaValue( formula::FormulaGrammar::GRAM_ENGLISH_XL_A1 ); +} + void ScVbaRange::setFormula(const uno::Any &rFormula ) { - // #FIXME converting "=$a$1" e.g. CONV_XL_A1 -> CONV_OOO // results in "=$a$1:a1", temporarily disable conversion - setFormulaValue( rFormula,formula::FormulaGrammar::GRAM_NATIVE_XL_A1 ); + setFormulaValue( rFormula, formula::FormulaGrammar::GRAM_ENGLISH_XL_A1 ); } uno::Any ScVbaRange::getFormulaR1C1() { - return getFormulaValue( formula::FormulaGrammar::GRAM_NATIVE_XL_R1C1 ); + return getFormulaValue( formula::FormulaGrammar::GRAM_ENGLISH_XL_R1C1 ); } void ScVbaRange::setFormulaR1C1(const uno::Any& rFormula ) { - setFormulaValue( rFormula,formula::FormulaGrammar::GRAM_NATIVE_XL_R1C1 ); + setFormulaValue( rFormula, formula::FormulaGrammar::GRAM_ENGLISH_XL_R1C1 ); } uno::Any -ScVbaRange::getFormula() +ScVbaRange::getFormulaLocal() { return getFormulaValue( formula::FormulaGrammar::GRAM_NATIVE_XL_A1 ); } +void +ScVbaRange::setFormulaLocal(const uno::Any &rFormula ) +{ + setFormulaValue( rFormula, formula::FormulaGrammar::GRAM_NATIVE_XL_A1 ); +} + +uno::Any +ScVbaRange::getFormulaR1C1Local() +{ + return getFormulaValue( formula::FormulaGrammar::GRAM_NATIVE_XL_R1C1 ); +} + +void +ScVbaRange::setFormulaR1C1Local(const uno::Any& rFormula ) +{ + setFormulaValue( rFormula, formula::FormulaGrammar::GRAM_NATIVE_XL_R1C1 ); +} + sal_Int32 ScVbaRange::getCount() { diff --git a/sc/source/ui/vba/vbarange.hxx b/sc/source/ui/vba/vbarange.hxx index 59404f9a730c..2e9b71746879 100644 --- a/sc/source/ui/vba/vbarange.hxx +++ b/sc/source/ui/vba/vbarange.hxx @@ -178,6 +178,10 @@ public: virtual void SAL_CALL setFormulaArray(const css::uno::Any& rFormula) override; virtual css::uno::Any SAL_CALL getFormulaR1C1() override; virtual void SAL_CALL setFormulaR1C1( const css::uno::Any &rFormula ) override; + virtual css::uno::Any SAL_CALL getFormulaLocal() override; + virtual void SAL_CALL setFormulaLocal( const css::uno::Any &rFormula ) override; + virtual css::uno::Any SAL_CALL getFormulaR1C1Local() override; + virtual void SAL_CALL setFormulaR1C1Local( const css::uno::Any &rFormula ) override; virtual ::sal_Int32 SAL_CALL getCount() override; virtual ::sal_Int32 SAL_CALL getRow() override; virtual ::sal_Int32 SAL_CALL getColumn() override; |