ChDirとScreenUpdatingはいつ行えばよいのでしょうか?

解決


ごろう  2006-06-22 20:23:06  No: 131982

ChDir ThisWorkbook.Path

Application.ScreenUpdating = False 
について質問です。

Application.ScreenUpdating = False 
を入れると処理が早くなると聞いたのですが、
どのタイミングでこの文を入れるとよいのでしょうか?

また、ChDir ThisWorkbook.Path
はどのタイミングで行えばよろしいのでしょうか?

ご回答、よろしくおねがいします。


特攻隊長まるるう  2006-06-22 20:53:01  No: 131983

VBにも種類やバージョンの違いがあり、開発環境によって
回答は変わります。開発環境を明示してください。
ThisWorkbook を使っていると言うことは[Excel VBA]ですか?
Excel の場合は、そのバージョンも明記してください。

>Application.ScreenUpdating = False 
>を入れると処理が早くなると聞いたのですが、
>どのタイミングでこの文を入れるとよいのでしょうか?
どうして速くなるのか?が分かっていれば必要な場所は
限られてくるのでは?少なくともヘルプで ScreenUpdating
がどういう設定なのかは調べましょう。
その設定が有効だと思う場所に入れてください。

>また、ChDir ThisWorkbook.Path
>はどのタイミングで行えばよろしいのでしょうか?
どういった処理を実行していて、何がしたいのか?書かれて
いませんので回答はありません。
極端な話、使わないコードなら実行する必要さえありません。
行わなくて良いんじゃないですか?それで困るのであれば
必要な場所を調べて実行してください。


ごろう  2006-06-22 21:29:09  No: 131984

Excel VBAで、
Excel2000を使っています。


LESIA  2006-06-23 01:49:26  No: 131985

> Application.ScreenUpdating = False 
> を入れると処理が早くなると聞いたのですが、
> どのタイミングでこの文を入れるとよいのでしょうか?

Excelはセルに値を書き込むとそのたびに画面を更新します。
複数のセルに値を書き込む処理を行なうと、1つのセルに
値を書き込むたびに画面を更新するので遅くなります。
Application.ScreenUpdating = False 
は、その画面の更新をしないようにするものなので
これを入れると速くなるわけです。

使用例
Dim lngRow As Long
Dim lngCol As Long
Dim n As Long

Application.ScreenUpdating = False 
For lngRow = 1 To 100
    For lngRow = 1 To 100
        n = n + 1
        Cells(lngRow, lngCol).Value = n
    Next lngCol
Next lngRow
Application.ScreenUpdating = True
 
> また、ChDir ThisWorkbook.Path
> はどのタイミングで行えばよろしいのでしょうか?
ChDirを使うことは殆どないと思います。
例えば、ThisWorkbookと同じフォルダにあるファイルを開きたいなら
Workbooks.Open ThisWorkbook.Path & "\test.xls"
のように、フルパスで指定してやれば出来ます。


ごろう  2006-06-23 19:35:06  No: 131986

ありがとうございました。
ようやくわかりました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加