- ベストアンサー
マクロで、アクティブでないシート上で処理させるには?
万年マクロ初心者です。よろしくお願いいたします。 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を表示させずにできないものでしょうか? よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちわ。 >その逆、つまり今回のように「こんなことがしたいんだけど、どういうコマンドを…」というとき、皆さんはどうしていらっしゃるのでしょうか・・・? うーん、人それぞれとは思いますが・・・ 私は、まず、はじめの頃は師匠(会社の先輩だった方ですけど)に聞いていました。本(本屋で立ち読み(座り読み?)してから購入するとか。ネット上で検索してみるとか、専用のQ&Aを利用するとか? いろいろ探してみると、自分に会うサイトを見つけれるかもしれませんね。 参考ですが、 http://plaza18.mbn.or.jp/~Happy/ http://www.asahi-net.or.jp/~zn3y-ngi/YNxv20.html なんかもいかがでしょうかね? お互いにがんばりましょうね。では少しでも参考になればよいのですが。。。
その他の回答 (2)
- papayuka
- ベストアンサー率45% (1388/3066)
こんにちは。 既に回答があるように、 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
お礼
ありがとうございました。 うーん、見たことないコマンドです。勉強になりました。
- junjun-da
- ベストアンサー率43% (20/46)
こんばんわ。 バックグラウンドでマクロを実行と言うことでいいのですよね? マクロの編集を選択し、構文の先頭行に Application.ScreenUpdating = False 最終行に Application.ScreenUpdating = True を挿入してみてください 画面は、一つ一つ切り替わることなくマクロが終了しますよ。
補足
ありがとうございました。 モロに同じ質問が過去にあったのですね…すみません。 きっと簡単なコマンドがあると思ってました。 でもどうやって探せばいいのですかね… コマンドを見て「あ~こんなことができるんだ…」というのはできますが、 その逆、つまり今回のように「こんなことがしたいんだけど、どういうコマンドを…」 というとき、皆さんはどうしていらっしゃるのでしょうか・・・?
お礼
ご親切な対応に感謝いたします。 ご紹介頂いたサイト、大変ありがたく思います。 がんばって勉強します。 でもわからなかったらまた投稿するかもしれませんので そのときはよろしくお願いいたします。 ありがとうございました。