• ベストアンサー

ExcelのVBAに詳しい人に質問です

表などでアクティブセルの行や列を目立たせるために、下記URLを参考に条件付き書式とVBAを合わせた技を使用しているのですが、アクティブセルを移動するたびにExcel表が点滅?するので、これをどうにか点滅しないようにしたいのですが出来ますでしょうか。 Application.ScreenUpdating = True を使っているのが原因だと思うのですが、無理でしょうか。 ・アクティブセルのある行・列を目立たせる http://www.relief.jp/itnote/archives/001406.php

質問者が選んだベストアンサー

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.3

どの程度「気になる点滅」なのかは存じ上げませんが・・ 条件付き書式を利用しようとする限りは避けて通れない状況です。 条件付き書式を利用しないやり方として、 Private Sub Worksheet_SelectionChange(ByVal Target As Range)     Cells.Interior.Pattern = xlNone     Target.EntireRow.Interior.Color = RGB(204, 255, 255)     Target.EntireColumn.Interior.Color = RGB(204, 255, 255) End Sub こんな感じで強引にやる方法もありますが・・・ 一度すべての塗り潰しを解除してしまうという弊害があります。 どんな手段でもそうですが、やはり一長一短ありますので、 どこを妥協するか?というところにかかわってくるのかなぁ、と思いますよ。

mzakom
質問者

お礼

回答ありがとうございます。 とても参考になりました。 一度習得した色をまた塗るという方法ならいけそうですね。

その他の回答 (2)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

Application.ScreenUpdating = True 画面を再描画させてますからちらつくのは仕方が無いと思われます。

回答No.1

さほど VBA に詳しいわけでもないですが。点滅という現象がどんな内容なのか、今一つピンと来ていないのですが、数式が重くてチラつくということでしょうか? 「Application.ScreenUpdating = True」は Excel に再描画させる指示で、コード云々というよりも、Excel の機能を使っているだけのことです。描画の際に再計算も行われるので、条件付き書式の条件式中に導入されているアクティブセルの行列番号が更新されるわけです。ですから少なくとも Excel というソフトを選んで処理しようとする限り、ご要望のことはなかなか難しいのではないかと。ただし(シートではなく)ブックに既存の各数式を軽くすれば、改善するかもしれませんが。 なお「Application.ScreenUpdating = True」の行は、その代わりに「ActiveSheet.Calculate」などと記述しても、同様の色塗りができます。重い数式のあるシートが別シートである場合は、計算の範囲をアクティブシートに限定することで、何か変わるかもしれませんね。

関連するQ&A