2

通常のルールに従って行が色付けされていない大きなスプレッドシートがあるため、セルの色はセルのエントリによって決定できません。セルの色を調べて値として使用したい。

スプレッドシートは次のようになります。

----------
data|data| <-- background row color red
----------
data|data| <-- background row color blue
----------
data|data| <-- background row color yellow
----------

「RED」や「EE0000」など、セルの背景色を報告する新しい列を作成したいと考えています。Excel/Gnumeric/LO Calc にはすべてcell、セルが色付けされているかどうかのみを示すように見える属性「色」と呼ばれる情報検索関数があります。

cell("color", A2)

0 または 1 を返します。

では、Gnumeric または LO Calc でセルの背景色を取得するにはどうすればよいでしょうか?

4

1 に答える 1

5

LibreOffice Calc の場合:

  1. [ツール] > [マクロ] > [マクロの整理] > [LibreOffice Basic] > [
    My Macros] > [Standard] > [Module1]に移動します。

  2. 「メイン」を選択し、「編集」をクリックします。

  3. 空の 3 行のテンプレートが含まれます。

    REM  *****  BASIC  *****
    
    Sub Main
    
    End Sub
    

    テンプレートの後にこれを追加します。

    Function bgcolor(c,r)
      Dim oDoc  As Object   ' define variables
      Dim oSheet As Object
      Dim oCell As Object
      oDoc  = ThisComponent
      oSheet= oDoc.getSheets().getByIndex(0)
      oCell = oSheet.getCellByPosition(c-1,r-1)
      bgcolor = oCell.CellBackColor
    End Function
    

    エディターに次のようなものが表示されます。

    LibreOffice Calc の BGColor マクロ

  4. オーガナイザーを閉じると、他の機能と同じように機能を使用できるようになります。

例:

bgcolor(3,1)
bgcolor(3, CELL("Row",A1))
bgcolor(CELL("COL", A1), CELL("ROW", A1))
于 2012-10-04T02:50:37.417 に答える