が定義数式"$A3<=$A$2&quot

が定義数式"$A3<=$A$2&quot。んとーーー1っこのセルの数式を、別なセルに????私ならレンジではなく、do{???}loopで回すかも。LibreOffice6 2 3 2マクロ(basic) で
_
複数セル範囲に1つの数式で条件付き書式を
設定しました しかし、設定された条件付き書式は
定義数式が壊れます _
定義数式("$A3<=$A$2")を壊さないためには
どこを修正すれば良いでしょうか

表の大きさは A1:Q250
1行目=見出し
2行目=3行目以降のデータ管理行として運用

●A列???シリアル値ベースの日付 形式:yy/mm/dd 昇順に並んでる
A3~A184行???18/03/31~19/11/27が入力済
A185~A250行???空白
●A2:=today()として本日日付を表示
●B C列???摘要でかな文字
●D,H I,Q列???数値
●E G列??文字列

●条件定義してる範囲とスタイル

A3:A250 , E3:G250 セル領域が2つ
"文字G + 中央揃え"

「文字G」 フォント色でG=緑
「揃え」 セル内の横位置
日本語表記なので「G,+,空白」はそれぞれ半角で入力

マクロを走らせると条件付き書式は正しくなされるようです

が、定義数式("$A3<=$A$2")→("$A5<=$A$2")に
変化(壊れて)してます

推定するに
oCondition(0) Name = "SourcePosition"に定義してる値
oCondition(0) Value = oRange RangeAddresses(0)が
正しくないと思われます

A3:A250 , E3:G250の2つの領域の1つ目のA3:A250の
左上セルの位置(=A3)を掴む
メソッドまたはプロパティはあるのでしょうか

いただいた回答を簡略化したコード

Sub SetConditionalStyle_ABDEGHIQ_Remodeling2()

Dim oRange as object
Dim oConFormat& x27;Conditional format object
Dim oCondition(3) As New com sun star beans PropertyValue
Dim sAddress
oCondition(0) Name = "SourcePosition"
oCondition(1) Name = "Operator"
oCondition(2) Name = "Formula1"
oCondition(3) Name = "StyleName"

Dim a: a = array("A3:A250,E3:G250")
Dim s: s = "文字G + 中央揃え"
Dim n as long, i as long

sAddress = Split( a(0), ",")
oRange = ThisComponent createInstance("com sun star sheet SheetCellRanges")
for i=0 to ubound(sAddress)
oRange addRangeAddress(ThisComponent Sheets(0) getCellRangeByName(sAddress(i)) RangeAddress,False)
next

oCondition(0) Value = oRange RangeAddresses(0)
oCondition(1) Value = com sun star sheet ConditionOperator FORMULA
oCondition(2) Value = "$A3<=$A$2"
oCondition(3) Value = s

oConFormat = oRange ConditionalFormat
oConFormat addNew(oCondition())
oRange ConditionalFormat = oConFormat

End Sub

んとーーー1っこのセルの数式を、別なセルに????私ならレンジではなく、do{???}loopで回すかも。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です