6

LibreOffice 3.5.4.2 を使用しています。セルの背景色をいろいろな条件で変えたいと思っています。最小限の例として、次のマクロ/関数を定義しています。

function bgcolor()
Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object   

Doc = ThisComponent
Sheet = Doc.Sheets(1)

Cell = Sheet.getCellByPosition(0, 0)
REM Cell.CellBackColor = RGB(50,60,70)
bgcolor=Cell.CellBackColor
end function

=BGCOLOR()セルに入って機能を実行します。その数式が存在するセルは、期待どおり、最初のセル(0,0)またはA1シート 1 の色の値を返します。

ただし、 cell の背景色を変更する機能を取得できませんA1。上記の例の行を削除して背景色を設定しても、セルの背景色は変わりませREM

LibreOfficeの関数でセルの背景色を設定するにはどうすればよいですか?

(「スタイル」の使用について読みましたが、多くの異なる背景色を設定する必要があり、多くの異なるスタイルを作成したくないため、これ以上調べませんでした。スタイルを使用せずに背景色を手動で変更することは可能です。プログラムで同じことを行うことができると考えました。)

4

3 に答える 3

3

まず、マクロ全般に問題はありません。述べたように、CellBackColor を設定する 1 行は正しいです。問題は、変更しようとしているシートから関数が呼び出されることです。関数が呼び出されたシートを変更することはできません。したがって、シート 1 から関数を呼び出して、シート 1 のセルの背景色を変更しようとすると、失敗します。ただし、シート 1 から呼び出すときにシート 0 のセルの背景色を変更しようとした場合は、期待どおりに機能します。

于 2015-10-29T12:37:09.633 に答える
2

行は

cell.cellbackcolor = RGB(50,60,70) 

(もちろん、コメント行だけを作成する「REM」はありません)

シートが 1 つしかない場合は、シートのパラメーターも 1 ではなく0であると考えてください。

その他の興味深いプロパティについては、セルのプロパティを参照してください

于 2015-10-18T17:14:39.777 に答える
0
Cell.BackColor = RGB(50,60,70) should do the trick

編集: これは lowriter でのみ機能します。ありがとうカンパ。

于 2012-12-23T17:05:45.443 に答える