• ベストアンサー

マクロで、アクティブでないシート上で処理させるには?

万年マクロ初心者です。よろしくお願いいたします。 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を表示させずにできないものでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • junjun-da
  • ベストアンサー率43% (20/46)
回答No.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
tarobei
質問者

お礼

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

その他の回答 (2)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

こんにちは。 既に回答があるように、 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

tarobei
質問者

お礼

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

  • junjun-da
  • ベストアンサー率43% (20/46)
回答No.1

こんばんわ。 バックグラウンドでマクロを実行と言うことでいいのですよね? マクロの編集を選択し、構文の先頭行に Application.ScreenUpdating = False 最終行に Application.ScreenUpdating = True を挿入してみてください 画面は、一つ一つ切り替わることなくマクロが終了しますよ。

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

補足

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

関連するQ&A