とっておきの「まかない飯」を教えて下さい!

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

A 回答 (3件)

Worksheets("シートA").Range("A1")



みたいな感じでできませんか?
    • good
    • 64
この回答へのお礼

できました!

とても簡単なことでしたね^^;

ありがとうございました!

お礼日時:2007/06/01 17:57

Activate しなければいいのでは?


Dim Value1, Value2
Value1 = ThisWorkbook.Worksheets("シートA").Cells(1, 1).Value
Value2 = ThisWorkbook.Worksheets("シートB").Cells(1, 1).Value
とか。
セル番地の書き方を ThisWorkbook からフルで書けば、複数のブックが開いている状態でも VBA 実行中のブックの特定のシートの特定のセルに直接アクセスできます。
面倒なら
Dim SheetA As Worksheet, SheetB As Worksheet
Set SheetA = ThisWorkbook.Worksheets("シートA")
Set SheetB = ThisWorkbook.Worksheets("シートB")
Dim Value1, Value2
For ~
Value1 = SheetA.Cells(1, 1).Value
Value2 = SheetB.Cells(1, 1).Value
Next
とか
    • good
    • 16

処理の直前(forの前)に


Application.ScreenUpdating = False
処理の直後(nextの後)に
Application.ScreenUpdating = True
を入れてみたら、どうなりますか?
    • good
    • 10

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A