プロが教える店舗&オフィスのセキュリティ対策術

マクロを含むエクセル(EXCEL2000)をHTMLのページからハイパーリンクで呼び出しています。そのエクセルでボタン操作に従い罫線やセルの着色を行っています。しかし、着色結果が更新されません。スクロールバー等で画面を移動すると正しく着色されています。このエクセルを通常に起動した場合は、問題なく動作するのですが、シート全体を更新する方法を教えて下さい。
各関数では、以下のスクリーンアップデータの処理を入れています。
Application.ScreenUpdating = False
    (処理)
Application.ScreenUpdating = False

A 回答 (3件)

たぶん、EXCEL独特の問題だと思うのですが、HTML の場合、すでに色の部分を表面上で使用しているので、それでメモリが占有させているのではないかと私は思っています。



他にも、

 ActiveWorkbook.HTMLProject.RefreshDocument True

というのがありますね。
ホスト アプリケーション内のブックに含まれる HTML プロジェクトを更新する、というのがありますね。
    • good
    • 3
この回答へのお礼

アドバイス頂いた方法では、うまくいきませんでしたが、VBAの手順としては、問題なさそうなので安心しました。
アプリケーションの問題かブラウザとの相性の問題のようですね。ありがとうございました。

お礼日時:2005/06/27 18:08

Application.ScreenUpdating


では、ダメだったということでしょうか?

もし、そうなら、いろいろ実験してみないとなんともいえませんね。

例えば、全体をActivate しなおす方法。
AppActivate (Application.Caption)

シートをActivate する。
Worksheets("Sheet1").Activate

また、シートを活性化する。
Application.Calculate

まだ、他にもあるかもしれません。

この回答への補足

回答ありがとうございます。
>Application.ScreenUpdating
>では、ダメだったということでしょうか?
はい、ダメだめでした。
逆に、この処理を止めると画面が、ばたつきますが、着色等は正しく完了します。しかし、ショートカットでも同じエクセルを使用したいのでApplication.ScreenUpdatingの処理は、残しておきたいです。

>AppActivate (Application.Caption)
この処理は、エクセルを起動するという意味でしょうか?
動作確認できませんでした。

>Worksheets("Sheet1").Activate
一旦、別シートへアクティブを切り替えると正しく表示されます。しかし、自シートに対しては、正しく表示されませんでした。

>Application.Calculate
正しく表示されませんでした。

今暫定的に、Application.ScreenUpdating=Trueの後、一度、全セルを選択して、その選択を解除する処理を入れています。少し、見苦しいですが、正しい表示を行うことができます。

補足日時:2005/06/24 15:41
    • good
    • 3

処理を挟んで、両方とも False ですけど、記入ミスですか?

この回答への補足

記入ミスです。
Application.ScreenUpdating = False
   (処理)
Application.ScreenUpdating = True
と訂正します。

補足日時:2005/06/24 13:05
    • good
    • 1
この回答へのお礼

まず、回答ありがとうございます。
で、補足の補足で申し訳ありません。「記入ミス」は、質問時の記入ミスです。

お礼日時:2005/06/24 13:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A