word vba  application.scrrenupdating=falseが有効にならない

Anonymous
2018-05-22T07:50:15+00:00

W7+WORD2010です.

最初に文書が2つ(A, Bと呼ぶ)開いていて,Aの全内容をBにcopy,pseteしたあとにAを閉じてBの各段落ごとにある処理を行います.

実行速度を上げたくてAを閉じた後にdeventsを実行し,その後に

application.scrrenupdating=false

を実行しますが画面が更新されます.更新されないようにできないのでしょうか?

Aを閉じるのはウインドウが2つ以上開いているとapplication.scrrenupdating=falseが効かないという記事を見たことがあるからです.

deventsを実行しているのは,これでうまくいく場合があるとの記事をみたことがあるからです.

application.scrrenupdating=falseの後の処理では

select文,findメソッドなどは使っております.

activateは使っておりません.

applicatio.visible=trueは機能します.処理時間が半分になりました.

試しに一つだけ文書を開いている状態で下記のVBAコードを実行すると更新はとまります.

Sub testScreenUpdating()

    Dim i As Long

    Application.ScreenUpdating = False

    For i = 1 To 500

        selection.TypeText ("aaaaa")

        selection.TypeParagraph

        Sleep 3

    Next i

    Application.ScreenUpdating = True

End Sub

findメソッドは実行後にそこにカーソルが移動するので,これが原因でしょうか?

どなたか原因や対象方法をご存知の方がいればご教示ください.

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

2 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2018-05-28T05:27:57+00:00

    ありがとうございます。

    そちらの方にも投稿してみます。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Makapu 92,110 評価のポイント ボランティア モデレーター
    2018-05-27T15:10:06+00:00

    matushiro97さん、こんにちは。

    VBAに関するご質問ですと、経験豊富な開発の方がご利用になる Msdnフォーラムに専用のフォーラムがありますので、そちらでも情報を集めてみてはいかがでしょう。

    ■ Msdnフォーラム(VBA)

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません