私はLibreOffice Calcを使って16個のRGBカラー(B列の赤、Cの緑、Dの青)を保存しています。次に、それぞれの色で16個のセルの背景をペイントしたいと思います。各色は一列に並んでいます。BASICネストループ:ローをフィルタリングする
私はこれを部分的に達成することができました:16個の細胞だけでなく、48個(16x3)の細胞がペイントされました!ネストされたループを「グループ化」する必要があるようです。これは私のコード/マクロです:
function bgcolor()
Dim Doc, Sheet, CellPaint As Object
Dim CellR, CellG, CellB As String
Doc = ThisComponent
Sheet = Doc.Sheets.getByIndex(0)
For i = 1 to 16 step 1
For j = 1 to 3 step 1
CellR = Sheet.getCellByPosition(j+0,i).getValue()
CellG = Sheet.getCellByPosition(j+1,i).getValue()
CellB = Sheet.getCellByPosition(j+2,i).getValue()
CellPaint = Sheet.getCellByPosition(j+6,i)
CellPaint.CellBackColor = RGB(CellR,CellG,CellB)
next j
next i
bgcolor=CellPaint.CellBackColor
end function
これが結果です:
色の最初の列(H)はまさに、私が必要なものです。他の2つの列がそこに表示されます:どうすれば入れ子になったループを修正できますか?おそらく、単純なif
ステートメントを使用してそれらをフィルタリングする必要がありますが、わかりません。
EDIT - 参考:ソリューションは、しかし、私はそれがOpenOfficeの上のことはできません読んthis oneのようになります(私は、LibreOfficeの上でもないと仮定します)。
ありがとうございます!
!私はそれがとても簡単かもしれないとは思わなかった。どうもありがとう! – Gerard