1

私のPythonコードでは、シートにデータを書き込む前にScreenUpdatingをFalseに設定し、その後、Trueに戻しています。ScreenUpdatingがTrueに設定されると、シートがちらつきます。

コードスニペット:

self.xlsApp.ScreenUpdating = False                                        
#Write some data here to excel sheet      
self.xlsApp.ScreenUpdating = True

このちらつきを取り除きたいのですが、それでもScreenUpdatingを使用します。

何か案は??

よろしく、オメル。

4

1 に答える 1

0

を設定すると、一部の(すべてではないにしても)Excelバージョンが完全に再描画されScreenUpdating=trueます。それに対してあなたができることは何もないと思います。

ただし、条件付きで設定するScreenUpdatingことはできます。falsetrue多くの場合、実際にデータを変更するのはたまにしか(またはめったに)ないコードを実行します。したがって、コードで行うシート更新が実際に更新を行うのはたまにしかない場合は、コードが実際に更新される場合にのみ、フラグを初期化してからfalse、に設定ScreenUpdatingfalse、フラグをに設定することができますtrue 更新後の最後のステップとして、フラグが設定されている場合ScreenUpdatingにのみに戻します。true

このように、実際にデータが変更された場合にのみちらつきが表示されます。これは、ほとんどの場合、ちらつきの影響を取り除くのにすでに十分かもしれません。

ちらつきが完全に残るのを防ぐには、Windows API関数を使用してExcelウィンドウの内部をロックし、概説されているようにコードを実行して、後でロックを解除してみてください。再描画プロセスが表示されないため、これでもちらつき効果が作成されますが、目に見えません。ロックを解除しても、再描画は引き続き行われますが、背景色で長方形の領域をクリアすることはありません。

于 2014-07-25T08:47:57.953 に答える