dポイントプレゼントキャンペーン実施中!

万年マクロ初心者です。よろしくお願いいたします。
2つのシートを使って作業しているとします。
それらをsheet A、sheet Bとします。

画面に表示しているシートはsheet Aのままで、sheet Bのいくつかのセルに
書きこみをさせたいのです。というのはsheet Bへの書きこみ量が多い為、
表示をさせていると非常に時間がかかるためです。

その方法がわからないので、今は仕方なく下記のようにしています。

Sheets("A").Select
       ・
       ・
       ・
Sheets("B").Select

Columns("B:CP").Select
Selection.ClearContents
With Selection.Font
.Name = "MS Pゴシック"
.FontStyle = "標準"
End With
For r = 3 To 72
For c = 2 To 94
If ○○○ Then Cells(r, c) = "*"
If △△△ Then Cells(r, c) = "★"
Next c
Next r

Sheets("A").Select
       ・
       ・
       ・

sheet Bでやっている作業を、なんとかsheet Bを表示させずにできないものでしょうか?
よろしくお願いいたします。

A 回答 (3件)

こんにちわ。



>その逆、つまり今回のように「こんなことがしたいんだけど、どういうコマンドを…」というとき、皆さんはどうしていらっしゃるのでしょうか・・・?

うーん、人それぞれとは思いますが・・・
私は、まず、はじめの頃は師匠(会社の先輩だった方ですけど)に聞いていました。本(本屋で立ち読み(座り読み?)してから購入するとか。ネット上で検索してみるとか、専用のQ&Aを利用するとか?
いろいろ探してみると、自分に会うサイトを見つけれるかもしれませんね。
参考ですが、
http://plaza18.mbn.or.jp/~Happy/
http://www.asahi-net.or.jp/~zn3y-ngi/YNxv20.html
なんかもいかがでしょうかね?

お互いにがんばりましょうね。では少しでも参考になればよいのですが。。。

参考URL:http://www.asahi-net.or.jp/~zn3y-ngi/YNxv20.html
    • good
    • 0
この回答へのお礼

ご親切な対応に感謝いたします。
ご紹介頂いたサイト、大変ありがたく思います。
がんばって勉強します。
でもわからなかったらまた投稿するかもしれませんので
そのときはよろしくお願いいたします。
ありがとうございました。

お礼日時:2002/12/06 14:51

こんにちは。



既に回答があるように、 Application.ScreenUpdating が最も手軽です。
他にはシートを指定して操作する方法もあります。

Sub Test1()
 Worksheets("B").Range("B3:CP72").ClearContents
 Worksheets("B").Range("B3:CP72").Font.Name = "MS Pゴシック"
 Worksheets("B").Range("B3:CP72").Font.FontStyle = "標準"
 For r = 3 To 72
  For c = 2 To 94
   Worksheets("B").Cells(r, c) = r
  Next c
 Next r
End Sub

また、ループ部分を Find 等にしてみるとIF条件の検索数によっては早くなるかも知れません。

Sub Test2()
Dim myRange As Range
 Set myRange = Worksheets("B").Range("B3:CP72")
 'myRange.ClearContents
 myRange.Font.Name = "MS Pゴシック"
 myRange.Font.FontStyle = "標準"
 myRange.Replace What:="5", Replacement:="*", lookat:=xlWhole
 myRange.Replace What:="6", Replacement:="★", lookat:=xlWhole
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。
うーん、見たことないコマンドです。勉強になりました。

お礼日時:2002/12/05 18:04

こんばんわ。



バックグラウンドでマクロを実行と言うことでいいのですよね?

マクロの編集を選択し、構文の先頭行に
Application.ScreenUpdating = False
最終行に
Application.ScreenUpdating = True
を挿入してみてください
画面は、一つ一つ切り替わることなくマクロが終了しますよ。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=414650

この回答への補足

ありがとうございました。
モロに同じ質問が過去にあったのですね…すみません。

きっと簡単なコマンドがあると思ってました。
でもどうやって探せばいいのですかね…
コマンドを見て「あ~こんなことができるんだ…」というのはできますが、
その逆、つまり今回のように「こんなことがしたいんだけど、どういうコマンドを…」
というとき、皆さんはどうしていらっしゃるのでしょうか・・・?

補足日時:2002/12/05 17:53
    • good
    • 0

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