1

オンライン フォーラムで見つけたマクロを使用しました。

指定されたセルの背景色を検出し、その背景色の数値を返します。問題は、それが 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
4

1 に答える 1

1

この場合、「自動計算」設定が機能しない理由がわかりません(LibreOffice 7.0.2でテスト済み)。とにかく、単一のセルまたは複数のセルのマクロ出力を手動で更新できます。

  • 単一のセルの場合、ヒットF9
  • 複数のセルの場合は、それらを選択してCTRL++をSHIFT押しF9ます。
于 2021-01-25T13:11:19.487 に答える