• ベストアンサー

別のシートから値を取得するとき

Worksheets("シート名").Activate 上記のを行ってから別シートの値を取得するのですが、 この処理を行うと指定したシートへ強制的にとんでしまいます。。。 ※イメージ For ~ To ~   Worksheets("シートA").Activate   シートAの値取得        :   Worksheets("シートB").Activate   シートBの値取得 Next このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。 シートを変えずに他のシートから値を取得する方法はないのでしょうか。 教えてください!

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

  • ベストアンサー
  • KG_
  • ベストアンサー率62% (34/54)
回答No.2

Worksheets("シートA").Range("A1") みたいな感じでできませんか?

sin-da4
質問者

お礼

できました! とても簡単なことでしたね^^; ありがとうございました!

その他の回答 (2)

回答No.3

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 とか

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

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