Calc条件付き書式の機能不具合

Microsoft Excel2019とLibreOffice Calc(7.4.6.2)を併用(※1)しており、条件付き書式を使用している際に、不可解な動きが発生しました。
誠に恐縮ですが、このことについて相談させてください。
よろしくお願い致します。

【現象】
まず、Excel2019にて、セルに以下のような条件付き書式を設定したxlsxファイルを作成しました(※2)。

《Excel2019上での条件付き書式設定》
セル値が「30以上」 → セル背景色を「RGB(128, 0, 0) '赤茶」に
セル値が「20~30」 → セル背景色を「RGB(255, 0, 0) '赤」に
セル値が「10~20」 → セル背景色を「RGB(255, 179, 0) '橙」に
セル値が「5~10」 → セル背景色を「RGB(255, 255, 0) '黄」に
セル値が「-5~5」 → セル背景色を「RGB(255, 255, 255) '白」に
セル値が「-10~-5」 → セル背景色を「RGB(139, 255, 139) '黄緑」に
セル値が「-20~-10」→ セル背景色を「RGB(0, 210, 205) '青緑」に
セル値が「-30~-20」→ セル背景色を「RGB(91, 91, 255) '明るい青」に
セル値が「-30未満」 → セル背景色を「RGB(0, 0, 172) '濃い青」に

このxlsxファイルをCalc(7.4.6.2)で開いて、
[書式]->[条件付き]->[管理]から起動する「条件付き書式を管理」画面からは、上記の条件が正常に設定されていることが、Calc(7.4.6.2)上で確認できました。
それにも関わらず、Calc(7.4.6.2)上で実際にセルに値を入力したときの動きは、以下のように、マイナス値との比較が正常に機能しないものとなってしまいました。

《LibreOffice Calc(7.4.6.2)上での実際の動き》
セル値が「30以上」→ セル背景色を「RGB(128, 0, 0) '赤茶」に
セル値が「20~30」→ セル背景色を「RGB(255, 0, 0) '赤」に
セル値が「10~20」→ セル背景色を「RGB(255, 179, 0) '橙」に
セル値が「5~10」 → セル背景色を「RGB(255, 255, 0) '黄」に
セル値が「0~5」 → セル背景色を「RGB(255, 255, 255) '白」に
セル値が「0未満」 → セル背景色を「RGB(0, 0, 172) '濃い青」に

【相談内容】
Excel2019とCalc(7.4.6.2)で条件付き書式が同じように動いてほしいのですが、「セルの値」のマイナス値との比較が正常に機能せず、同じような動きになりませんでした。

これは、Calc(7.4.6.2)の不具合なのでしょうか。それとも、私の使い方に問題があったのでしょうか。

(※1)相談内容とはあまり関係ないですが、それぞれ以下の特徴があるようなので、Excel2019のマクロでxlsxファイルを加工し、CalcでPDF変換を行う形で、併用しています。
[Excel2019]
マクロ言語のExcel VBAに関する情報が得やすく、デバッガも最初から用意されており、マクロの作りこみがし易いので使用。

[LibreOffice Calc(7.4.6.2)]
xlsxファイルのPDF変換が、体感的にExcel2019よりも処理が速い。sofficeでコマンドラインからPDF変換できるのも便利。

(※2) 実際には、Excel VBAから以下のような処理を行い、セルに条件付き書式を設定しました。
myRange.FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:=30).Interior.Color = RGB(128, 0, 0)
myRange.FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:=20).Interior.Color = RGB(255, 0, 0)
myRange.FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:=10).Interior.Color = RGB(255, 179, 0)
myRange.FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:=5).Interior.Color = RGB(255, 255, 0)
myRange.FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:=-5).Interior.Color = RGB(255, 255, 255)
myRange.FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:=-10).Interior.Color = RGB(139, 255, 139)
myRange.FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:=-20).Interior.Color = RGB(0, 210, 205)
myRange.FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:=-30).Interior.Color = RGB(91, 91, 255)
myRange.FormatConditions.Add(Type:=xlCellValue, Operator:=xlLess, Formula1:="-30").Interior.Color = RGB(0, 0, 172)
条件付き書式.xlsx (412.5 KB)

こちらでコードを実行してテストしましたが再現しません。
Libreを最新版にされても再現しますか?
できればコードよりも直接読めるブックでアップロードされたらと。

Version: 7.5.2.2 (X86_64) / LibreOffice Community
Build ID: 53bb9681a964705cf672590721dbc85eb4d0c3a2
CPU threads: 4; OS: Windows 10.0 Build 19045; UI render: Skia/Raster; VCL: win
Locale: ja-JP (ja_JP); UI: ja-JP
Calc: threaded

ご確認ありがとうございます。

「条件付き書式.xlsx」という名称で、現象が発生したブックを添付しました。

最新の安定板7.4.7.2をインストールしてみましたが、現象は解消しませんでした。

アーリーアダプター用の7.5.5も試してみようと思います。

「条件付き書式.xlsx」ファイルを確認しました。
メニューバーの[データ]-[計算]-[自動計算]をクリックしてチェックを入れるといいですよ。
LO7.5ヘルプ「条件付き書式設定」
ヘルプの説明と若干違いますが・・・

Version: 7.4.7.2 (x64) / LibreOffice Community
Build ID: 723314e595e8007d3cf785c16538505a1c878ca5
CPU threads: 12; OS: Windows 10.0 Build 22621; UI render: Skia/Vulkan; VCL: win
Locale: ja-JP (ja_JP); UI: ja-JP
Calc: CL

2 Likes

ご確認ありがとうございます。

アドバイスいただきましたとおり、Calcメニューバーの[データ]-[計算]-[自動計算]で、条件付き書式が想定通りに機能しました。

本当に助かりました。ありがとうございます。

併せていろいろ調べた結果、自動計算するか否かは、Calcの設定ではなく、Calcが開くファイル(ここでいう「条件付き書式.xlsx」)に保存されるらしいことがわかりました。

ここから先は、私が実現しようとしている個人的なことになりますが、私はExcelマクロでxlsxファイルを加工・保存し、PDF変換のみCalc(というかコマンドラインのsoffice)で行っています。

そのため、Excel側でファイルを保存する直前のマクロVBAコードに、自動計算用の以下の一文を入れておくことにしました。

Application.Calculation = xlCalculationAutomatic

こうすれば、コマンドラインのsofficeでxlsxファイルをPDF変換する際にも自動計算がなされ、条件付き書式が想定通りに機能し、目的としていたPDFファイルを出力するようになりました。

今回、条件付き書式についていろいろと勉強になりました。

本当にありがとうございました。

2 Likes