オンライン フォーラムで見つけたマクロを使用しました。
指定されたセルの背景色を検出し、その背景色の数値を返します。問題は、それが 1 回しか行われないことです。指定したセルの背景色を変更すると数値が更新されません。それを更新するには、マクロを呼び出すセルで何かを変更し (たとえば、1 文字を削除して再入力する)、Enter キーを押します。次に、数値を更新します。
自動更新する方法はありますか?または、(説明した削除および再入力方法と比較して)更新する簡単な方法、できれば一度に複数のセルで機能する方法があります。
openoffice フォーラムの Villeroy によるコード:
Function CELL_BACKCOLOR(vSheet,lRowIndex&,iColIndex%)
'calls: getSheetCell
REM returns color code as number
Dim v
v = getSheetCell(vSheet,lRowIndex&,iColIndex%)
if vartype(v) = 9 then
CELL_BACKCOLOR = v.CellBackColor
else
CELL_BACKCOLOR = v
endif
End Function
Function getSheetCell(byVal vSheet,byVal lRowIndex&,byVal iColIndex%)
dim oSheet
' print vartype(vsheet)
oSheet = getSheet(vSheet)
if varType(oSheet) <>9 then
getSheetCell = NULL
elseif (lRowIndex > oSheet.rows.count)OR(lRowIndex < 1) then
getSheetCell = NULL
elseif (iColIndex > oSheet.columns.count)OR(iColIndex < 1) then
getSheetCell = NULL
else
getSheetCell = oSheet.getCellByPosition(iColIndex -1,lRowIndex -1)
endif
End Function