ウェブ 画像 動画 地図 ニュース グループ Gmail その他 »
最近アクセスしたグループ | ヘルプ | ログイン
Google グループ
Screen Flickering
現在、このグループで最初に表示するトピックが多すぎます。このトピックを最初に表示するには、別のトピックからこのオプションを削除してください。
リクエストの処理中にエラーが発生しました。 もう一度やり直してください。
フラッグ
  メッセージ 5 件 - すべて展開して表示  -  すべてをに翻訳 翻訳(すべてのオリジナルを表示)
投稿先のグループは Usenet グループです。このグループにメッセージを投稿すると、インターネット上のユーザーがメール アドレスを閲覧できるようになります。
返信メッセージが送信されていません。
投稿しました。
 
差出人:
宛先:
Cc:
フォローアップ先:
Cc を追加 | フォローアップ先を追加 | 件名を編集
件名:
確認:
確認のため、下の画像に表示されている文字か、アクセシビリティ アイコンをクリックすると聞こえる数字を入力してください。 聞こえた番号を入力します
 
ray  
プロフィールを表示   に翻訳 翻訳(オリジナルを表示)
 詳細オプション 2002年2月14日, 午前1:06
ニュースグループ: microsoft.public.word.vba.beginners
差出人: "ray" <liang...@hotmail.com>
日付: Thu, 14 Feb 2002 00:08:37 +0800
ローカル: 2002年2月14日(木) 午前1:08
件名: Screen Flickering
Hello,
I would like to prevent the screen from flickering when a macro is executed.

I use:
Application.ScreenUpdating = False

However, this command doesn't work -- the screen still flickers. What else
can I try?

Suggestions are most welcome!


    投稿者に返信    転送  
メッセージを投稿するには、ログインする必要があります。
メッセージを投稿するには、まず最初にこのグループに参加する必要があります。
投稿する前に、[設定] ページでニックネームを更新してください。
投稿に必要な権限がありません。
ray  
プロフィールを表示   に翻訳 翻訳(オリジナルを表示)
 詳細オプション 2002年2月14日, 午後2:38
ニュースグループ: microsoft.public.word.vba.beginners
差出人: "ray" <liang...@hotmail.com>
日付: Thu, 14 Feb 2002 13:38:25 +0800
ローカル: 2002年2月14日(木) 午後2:38
件名: Re: Screen Flickering
I use a lot of NextCell commands in a table with many columns, which cause
the flickering. Any help about how the flickering could be prevented would
be very much appreciated. Thank you.

    投稿者に返信    転送  
メッセージを投稿するには、ログインする必要があります。
メッセージを投稿するには、まず最初にこのグループに参加する必要があります。
投稿する前に、[設定] ページでニックネームを更新してください。
投稿に必要な権限がありません。
Mark Tangard  
プロフィールを表示   に翻訳 翻訳(オリジナルを表示)
 詳細オプション 2002年2月14日, 午後7:07
ニュースグループ: microsoft.public.word.vba.beginners
差出人: Mark Tangard <mtang...@speakeasy.net>
日付: Thu, 14 Feb 2002 02:06:29 -0800
ローカル: 2002年2月14日(木) 午後7:06
件名: Re: Screen Flickering

Hi Ray,

I'm assuming these two consecutive posts are about the same issue.
To your first post, I would have said: Chances are you're using the
selection object instead of ranges to insert or manipulate content.
That'll often create the nasty "laser show" effect in a document,
although in a table you often have tradeoffs with speed depending
on the Word version.  BUT:

In this post (#2), you say you're using the NextCell command.  If I
remember right, that's a WordBasic command.  So you might get better
responses in the word6-7macros newsgroup.  BUT (more buts, uh-oh):

If you're using NextCell as the property of the WordBasic object in
VBA, the first thing I'd try is recoding it in 'pure' VBA.  More than
likely you can rewrite it in a way that doesn't make your screen do
its dance, or at least minimizes that effect.  Exactly which method
to use may depend on what version of Word you're using and just how
enormous the table is.  Post back with more detail.  (Dave R., are
you watching?  This is your fave topic.)

-- Mark Tangard <mtang...@speakeasy.net>, Microsoft Word MVP ------------
-- See the MVP FAQ at http://www.mvps.org/word --------------------------
----------------- "Life is nothing if you're not obsessed." --John Waters
-------------------------------------------------------------------------
Reply to group ONLY. Do not attach files. MVPs do not work for Microsoft.


    投稿者に返信    転送  
メッセージを投稿するには、ログインする必要があります。
メッセージを投稿するには、まず最初にこのグループに参加する必要があります。
投稿する前に、[設定] ページでニックネームを更新してください。
投稿に必要な権限がありません。
ray  
プロフィールを表示   に翻訳 翻訳(オリジナルを表示)
 詳細オプション 2002年2月15日, 午前12:09
ニュースグループ: microsoft.public.word.vba.beginners
差出人: "ray" <liang...@hotmail.com>
日付: Thu, 14 Feb 2002 23:10:41 +0800
ローカル: 2002年2月15日(金) 午前12:10
件名: Re: Screen Flickering
Hi Mark,

Thank you very much for your very informative reply.

I have a number of Word 6 macros, which have been converted into Word 2000
VBA format automatically upon being executed in Word 2000.

You are correct that NextCell is a Word Basic command, so I follow your
advice and recode all statements in VBA. In other words, I get rid of all
references to the WordBasic object in my macros.

The flickering problem improves a bit, but it is still there.

After some experimenting, I find that if a table has more columns than the
screen can accommodate, the follow code will result in a flickering screen
if the selection moves into an invisible part of the table and back:

Application.ScreenUpdating = False
Selection.MoveRight unit:=wdCell, Count:=10
Selection.MoveLeft unit:=wdCell, Count:=10
Application.ScreenUpdating = True

However, if the relevant cells of the table (in the above code, the eleven
cells concerned) are all visible in the screen, there will be no flickering.

To circumvent the problem, therefore, I precede my macros with the following
statement in order to 'bestfit' the entire table:
ActiveWindow.ActivePane.View.Zoom.PageFit = wdPageFitBestFit

This is of course not a genuine solution to the problem, because I don't
think that's what the ScreenUpdating command is supposed to work.

Further suggestions are most welcome!


    投稿者に返信    転送  
メッセージを投稿するには、ログインする必要があります。
メッセージを投稿するには、まず最初にこのグループに参加する必要があります。
投稿する前に、[設定] ページでニックネームを更新してください。
投稿に必要な権限がありません。
Jonathan West  
プロフィールを表示   に翻訳 翻訳(オリジナルを表示)
 詳細オプション 2002年2月15日, 午前12:48
ニュースグループ: microsoft.public.word.vba.beginners
差出人: "Jonathan West" <jw...@mvps.org>
日付: Thu, 14 Feb 2002 15:44:02 -0000
ローカル: 2002年2月15日(金) 午前12:44
件名: Re: Screen Flickering
Hi Ray,

The next stage of rewriting your macros to get rid of flicker is to avoid
using the Selection, and use a Range variable instead.

Most methods that apply to the Selection also apply to a Range.
(Unfortunately not quite all, otherwise the process that I'm going to
describe would be completely automatic)

To use a Range instead of the Selection, put the following at the start of
your macro.

Dim myRange as Range
Set myRange = Selection.Range

(You can set it to anything else you like, but this gives you the closest
match to what your macro is doing at the moment)

Next, go through your macro, and wherever you see the Selection keyword,
replace it with myRange.

Next, go through your macro looking for the Select method. You have to
replace any line with a Select method so that is uses Set myRange =
something instead. So, for instance

    ActiveDocument.Tables(1).Range.Select

would become

    Set myRange = ActiveDocument.Tables(1).Range

There are some methods which apply only to the Selection. The most commonly
used ones are the HomeKey and EndKey methods. These can be replaced by using
the Move method with appropriate parameters.

Once you have done this, your macro will have much less screen flicker, and
will probably run a good deal faster as well.

There are a few cases where you really need to use the Selection. These
include

1. If you are dealing with lines (as opposed to paragraphs)
2. If you are using the predefined bookmarks such as \Page, which are
defined relative to the selection.

Once you learn to love Ranges, you can find that they are very a powerful
tool for some kinds of macros. This is because, while you are limited to one
selection, you can have as many Range variables as you want to define. If
you want to have a temporary placeholder, just define a range object for it,
and come back to it later.

If you get stuck with converting any particular bit of code, post back here
and we'll help you fix it.

--
Regards
Jonathan West - Word MVP
MultiLinker - Automated generation of hyperlinks in Word
Conversion to PDF & HTML
http://www.multilinker.com
Word FAQs at http://www.multilinker.com/wordfaq
Please post any follow-up in the newsgroup. I do not reply to Word questions
by email

"ray" <liang...@hotmail.com> wrote in message

news:O4SFdlWtBHA.1228@tkmsftngp04...


    投稿者に返信    転送  
メッセージを投稿するには、ログインする必要があります。
メッセージを投稿するには、まず最初にこのグループに参加する必要があります。
投稿する前に、[設定] ページでニックネームを更新してください。
投稿に必要な権限がありません。
メッセージの終わり
« ディスカッションに戻る « 新しいトピック     過去のトピック »

グループを作成 - Google グループ - Google ホーム - 利用規約 - プライバシー ポリシー
©2009 Google