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