
標準モジュールの冒頭でワークシート用のオブジェクト変数を確保し、
あるタイミングで、あるシートをそのオブジェクト変数にSetしています。
で、そのシートに値をセットするときに、そのシートがActiveだった場合だけやりたい処理があるのですが、Setしてあるオブジェクト変数だけを見てそのシートがActiveか否かを判断する方法って、あるのでしょうか。
コード例)
Private oSheetA as Worksheet
Sub SetSheet(sName as String)
Set oSheetA = worksheets(sName)
End Sub
Sub SetValue(nValue as integer)
xxxxxx ←ここでoSheetAがActiveならやりたいことがある。
oSheetA.Cells(nRow, nCol) = cValue
End Sub
具体的には、複数のBookを開いている状態で、Activeシートが何であるかはオペレータの操作次第なので固定化できない状態で、SetValueが呼び出されたとき、oSheetAがActiveだったら、値をセットするセルが見えるようにセルをActivateかスクロールさせたいんです。
No.1ベストアンサー
- 回答日時:
Option Explicit
Private oSheetA As Worksheet
Sub SetSheet(sName As String)
Set oSheetA = Worksheets(sName)
End Sub
Sub SetValue(nValue As Integer)
If oSheetA Is ActiveSheet Then
MsgBox ("hoge")
End If
oSheetA.Cells(1, 1) = nValue
End Sub
Sub Main()
SetSheet ("Sheet1")
SetValue (5)
End Sub
'実行できるようにソースは変更していますが,
'こんな感じでIs演算子で同じオブジェクトか比較してみるってのはどうでしょう?
おぉっ、衝撃的!
このような簡潔な方法があったとは。
ありがたく使わせていただきます。
ついでに、ちょっと聞いてみてもいいですか?
オブジェクト変数に開いたBookをSetしておいて、そのオブジェクト変数だけで、Bookがまだ開いているかどうかを調べる方法ってご存知ですか?
Is Nothingだと引っかからないんですよね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
Excelブックがアクティブになっているかどうか
Visual Basic(VBA)
-
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
-
4
【EXCEL VBA】オートシェイプをクリックした時にそのオートシェイプの名前を取得したい
Visual Basic(VBA)
-
5
【Excel】 セルの色での判断はできますか?
Excel(エクセル)
-
6
エクセルVBA/イベント発生でコピペ不能はなぜ?
Excel(エクセル)
-
7
VBA:結合されたセルに対する「Target」について
Access(アクセス)
-
8
Excelのシート上のShapeにイベントは設定できる?
Excel(エクセル)
-
9
エクセルマクロで、別のブックが開いているかを判定したいのですが。
その他(Microsoft Office)
-
10
ExcelVBA 図形をクリックした際のイベントを拾うには
Visual Basic(VBA)
-
11
callで順に実行されるプロシージャを途中で止める方法
Excel(エクセル)
-
12
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
13
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel VBA】Worksheets().Act...
-
XL:BeforeDoubleClickが動かない
-
実行時エラー'1004': WorkSheet...
-
Excelマクロのエラーを解決した...
-
オートシェイプの文字が更新さ...
-
EXCEL(VBA)でシート保護がかか...
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
VBAで指定シート以外の選択
-
ExcelVBA シート名を複数セルか...
-
ユーザーフォームでのリストボ...
-
【VBA】特定の文字で改行(次の...
-
VBA 最終行まで数式をコピーする
-
EXCELVBAを使ってシートを一定...
-
ワークシートを追加したときの...
-
vba 環境依存文字がListViewボ...
-
エクセルVBA Ifでシート名が合...
-
エクセルVBA ListBoxの並び...
-
エクセルのマクロで実行時エラ...
-
ExcelのVBAを使い、複数シート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel VBA】Worksheets().Act...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
エクセルVBA Ifでシート名が合...
-
【ExcelVBA】全シートのセルの...
-
Excel チェックボックスにチェ...
-
ブック名、シート名を他のモジ...
-
Excel VBA リンク先をシート...
-
エクセルで通し番号を入れてチ...
-
実行時エラー1004「Select メソ...
-
シートが保護されている状態で...
-
ExcelのVBAのマクロで他のシー...
-
オートシェイプの文字が更新さ...
-
EXCELVBAを使ってシートを一定...
-
VBAで指定シート以外の選択
-
エクセルのマクロでアクティブ...
おすすめ情報