
標準モジュールの冒頭でワークシート用のオブジェクト変数を確保し、
あるタイミングで、あるシートをそのオブジェクト変数に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キーでマクロを起動さす。
その他(ソフトウェア)
-
ExcelVBA 図形をクリックした際のイベントを拾うには
Visual Basic(VBA)
-
Excelブックがアクティブになっているかどうか
Visual Basic(VBA)
-
-
4
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
5
(VBA)指定したセルがアクティブかどうかを判別するには?
その他(プログラミング・Web制作)
-
6
【EXCEL VBA】オートシェイプをクリックした時にそのオートシェイプの名前を取得したい
Visual Basic(VBA)
-
7
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
8
エクセルVBA/イベント発生でコピペ不能はなぜ?
Excel(エクセル)
-
9
Excelのシート上のShapeにイベントは設定できる?
Excel(エクセル)
-
10
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
11
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
12
Excel-VBAの「しばらくお待ちください」のダイアログが自動的に閉じない
Excel(エクセル)
-
13
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
14
EXCELマクロで、開いてはいるがアクティブでないファイルをアクティブにする方法?
Excel(エクセル)
-
15
シングルクリックとダブルクリックのイベントについて
Access(アクセス)
-
16
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
17
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
18
(Excel VBA)シートコピー時マクロはコピーしたくない
Excel(エクセル)
-
19
エクセルVBAのフォームを最前面にする方法を教えてください。
Visual Basic(VBA)
-
20
VBA:結合されたセルに対する「Target」について
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
【ExcelVBA】全シートのセルの...
-
実行時エラー1004「Select メソ...
-
excelのマクロで該当処理できな...
-
XL:BeforeDoubleClickが動かない
-
Excel VBA リンク先をシート...
-
エクセルVBA Ifでシート名が合...
-
ブック名、シート名を他のモジ...
-
Worksheet_Changeの内容を標準...
-
ユーザーフォームに入力したデ...
-
EXCEL(VBA)でシート保護がかか...
-
【Excel VBA】Worksheets().Act...
-
Access エクセルシート名変更
-
Excelマクロのエラーを解決した...
-
【エクセル】オプションボタン...
-
ユーザーフォームでのリストボ...
-
シート削除のマクロで「delete...
-
エクセルのマクロでアクティブ...
-
シートが保護されている状態で...
-
【VBA】シート名に特定文字が入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
VBA 存在しないシートを選...
-
エクセルで通し番号を入れてチ...
-
VBA 検索して一致したセル...
-
XL:BeforeDoubleClickが動かない
-
VBA 指定した回数分、別シート...
-
VBAマクロでシートコピーした新...
-
シートが保護されている状態で...
-
ブック名、シート名を他のモジ...
-
【VBA】全ての複数シートから指...
-
別のシートから値を取得するとき
-
ExcelのVBAのマクロで他のシー...
-
Excel チェックボックスにチェ...
おすすめ情報