- ベストアンサー
別のシートから値を取得するとき
Worksheets("シート名").Activate 上記のを行ってから別シートの値を取得するのですが、 この処理を行うと指定したシートへ強制的にとんでしまいます。。。 ※イメージ For ~ To ~ Worksheets("シートA").Activate シートAの値取得 : Worksheets("シートB").Activate シートBの値取得 Next このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。 シートを変えずに他のシートから値を取得する方法はないのでしょうか。 教えてください!
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Worksheets("シートA").Range("A1") みたいな感じでできませんか?
その他の回答 (2)
- temtecomai2
- ベストアンサー率61% (656/1071)
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)
処理の直前(forの前)に Application.ScreenUpdating = False 処理の直後(nextの後)に Application.ScreenUpdating = True を入れてみたら、どうなりますか?
お礼
できました! とても簡単なことでしたね^^; ありがとうございました!