質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
LibreOffice Calc

LibreOffice Calcは、様々なOSで利用可能なオフィススイートであるLibreOfficeに含まれるオープンソースの表計算ソフトです。テンプレートや背景色、枠線といった書式設定の各項目を柔軟で設定することができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

0回答

956閲覧

Libreoffice Calc のpythonマクロにて、セルの背景色を複数回変更した場合に、最後の色しか表示されないが、途中の色を表示させたい。

Windysurf

総合スコア4

LibreOffice Calc

LibreOffice Calcは、様々なOSで利用可能なオフィススイートであるLibreOfficeに含まれるオープンソースの表計算ソフトです。テンプレートや背景色、枠線といった書式設定の各項目を柔軟で設定することができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2020/02/18 12:14

ラズパイのLibreofficeにてpythonマクロを作成しています。
下記のように背景色を何度か変更させると
最後の設定である、0xzzzzzzの色しか表示されません。
途中の色も表示されるようにするにはどうしたらよいでしょうか?

xdoc=XSCRIPTCONTEXT.getDocument()
xsheet=xdoc.Sheets['Sheet1']
xcell=xsheet.getCellByPosition(i,j)
xcell.CellBackColor=0xxxxxxx


xcell.CellBackColor=0xyyyyyy


xcell.CellBackColor=0xzzzzzz

試したこと

CellBackColorの文のすぐ後ろにmsgboxにてメッセージを表示させると、セルの色がmsgbox直前に設定した色に
変わっていることは確認できます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coco_bauer

2020/02/20 06:35

具体的に何がしたいのかが判りません。 例えば、「あるセルを赤にする、そのセルを青にする、そのセルを緑にする」というように順に操作してゆけば、セルが緑になった状態で終わりますよね。 "途中の色を表示させたい"というのは、何をしたいというのを表しているのでしょうか?
Windysurf

2020/02/20 09:55

ご連絡ありがとうございます。例えば、赤の色を指定し、それから青に色を変える間の処理の時間は比較的に長くても、赤の色が表示されません。time.sleep(3.0)のような時間待ちを入れても色が表示されないため、内部的に処理があとまわしになっている感じです。画面の更新コマンドのようなものがないものかと。Excel VBAではこのようなことは起こらないのですが。 説明不足がありましたらご指摘ください。
coco_bauer

2020/02/24 03:43

色の変更が画面に反映されていないようなので、"xdoc=XSCRIPTCONTEXT.getDocument()"の次の行に"xdoc.UnlockControllers"という行を追加してみてください。 "xdoc.UnlockControllers"は、画面の更新を有効にするコードで、Excel VBAの"Application.ScreenUpdating = True"に相当します。
Windysurf

2020/02/25 12:28

ご連絡ありがとうございます。行を追加したところ、<class AttributeError>というエラーになりました。 xsheet.UnlockControllersとかxcell.UnlockControllers というのも試しましたがだめでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問