No.1ベストアンサー
- 回答日時:
(1)ActiveSheetは1つです。
VBAでは、複数あるものはコレクションオブジェクトといって、オブジェクトの集合体を表す1つのオブジェクトとして扱われます。WorkbooksとかWorksheetsとかがそうです。Worksheetsはそのブックのシート全体のコレクションで、単体のシートを指定するにはWorksheets("Sheet1")などと表記します。
ActiveSheetはコレクションオブジェクトでなく、単体のシートを指すので、常に1つだけです。
(2)デバッグ中にActiveSheetを確認したいときは、ステップ実行やブレークポイントで処理を中断させ、「デバッグ」>「ウォッチ式の追加」で「ActiveSheet.Name」を追加すれば、ウォッチウィンドウでシート名を確認することができます。
(3)ActiveSheetは1つなので、別のシートをアクティブにしたら、前のシートはアクティブではありません。
No.4
- 回答日時:
ThisWorkbookのSheetActivateイベント
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox Sh.Name
End Sub
これはブック単位でしか反応しないようだか。
選択はシートタブで2つ以上できて、だから2つあるように見えるが
や
「ウインドウー新しいウインドウうを開く」で色々やって見たが
、片方はウインドウ的なコピーで、見た目は2つ有るように見えるが
「アクチブシートは(その時点で)1つ」でよいのではないでしょうか。
Sub test01()
ActiveSheet.Cells(1, "A") = "AAA"
End Sub
新しいウインドウを開いていたときはコピーなので、両方にセットされるように見えるが、アクチブシートが2つではないでしょう。
普通に使っているときは、この考えで少なくても困りません。
シートを2つ以上指定したりしてやってみたが、シートタブでマウスでクリックしたシートですね。キーボ-ドやマウスで入力できるシート
ですね。キーやマウス以外で、VBAでやると
VBAでは
Sub test02()
Worksheets("Sheet1").Activate
Worksheets("Sheet3").Range("A3") = "DDDDDDDD"
End Sub
が可能(アクチブシート以外に値をセットできる)ですから、余りActivateに拘らなくても(むしろ拘らないで明示的に指定したほうが)良いのでは。
この回答へのお礼
お礼日時:2007/01/31 09:10
余りActivateに拘らなくても(むしろ拘らないで明示的に指定したほうが)良いのでは。
は特に参考になりました。
更に理解を深めることができました。ご回答どうもありがとうございました。
No.3
- 回答日時:
No.1です。
すみません、No.2さんの回答を読んで、ブックを2つ以上開いていた場合のことが抜けていたことに気がつきました。No.1の回答は、「開いているブックが1つのとき」に限定しての解説だとご理解ください。
No.2
- 回答日時:
(1)ActiveSheetプロパティはApplication/Workbook/Windowオブジェクトのメンバなので
Excelを複数起動している場合や複数ワークブックを開いている場合、ウィンドウを
複数開いている場合は、対象のオブジェクトによってActiveSheetの値は異なります。
なので(1)の答えとしては複数のAcvtiveSheetは存在しえます。
(2)可能です。Debug.print などでActiveSheet.nameなどを出すなど方法はあります。
(3)上記(1)で説明したように、上位オブジェクトによってActiveSheetの値は変わるので
条件によっては複数ActiveSheetが存在し得ますが、同一オブジェクト内では
ActiveSheetは1つなので、別のシートをアクティブにすれば前回のActiveSheetは
アクティブでなくなります。ただし、別のオブジェクトには影響しません。
簡単に説明するならば・・・エクスプローラーを2つ開くとします(窓A、窓B)。
エクスプローラー上で開いているフォルダをアクティブフォルダと考えれば
アクティブシートの関係と似たような関係になると思っておいてください。
アクティブフォルダは窓A、Bによってそれそれ存在する。・・・(1)
窓Aでフォルダを移動すれば前のアクティブフォルダはアクティブではなくなる。
しかし、窓Bのアクティブフォルダは変わらない・・・(3)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルでブック内の倍率がバ...
-
エクセルで複数のシートに画像...
-
エクセルのシー名を二段表示に...
-
ハイパーリンクでジャンプした...
-
【ExcelVBA】マクロの入ったシ...
-
EXCELの「シートの見出し」のフ...
-
EXCELの図形(テキストボックス)...
-
特定のシートのみ再計算させな...
-
エクセルで誤ってF11キーを押す...
-
Accessのテーブルを既存のExcel...
-
EXCELで存在しないシート...
-
ワークシートそのものの色を変...
-
エクセルのシート連番の振り直し
-
エクセル、特定のシートにパス...
-
Excel 全シート上のボタンを削...
-
エクセルVBAでエラー!
-
エクセルシートのタブの階層化表示
-
【Excel VBA】データ貼り付け先...
-
エクセルで目次に自動でページ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルでブック内の倍率がバ...
-
ハイパーリンクでジャンプした...
-
エクセルで複数のシートに画像...
-
特定のシートのみ再計算させな...
-
【ExcelVBA】マクロの入ったシ...
-
EXCELの図形(テキストボックス)...
-
エクセルのシート連番の振り直し
-
エクセルのシー名を二段表示に...
-
Accessのテーブルを既存のExcel...
-
ワークシートそのものの色を変...
-
Wordで差し込み印刷時に表示す...
-
エクセルの2つのシートを並び...
-
エクセル、特定のシートにパス...
-
EXCELで存在しないシート...
-
エクセルVBAでエラー!
-
エクセルで誤ってF11キーを押す...
-
指定したシート名以外を非表示...
-
アクセスからエクセルのシート...
-
エクセルマクロでシート名を条...
おすすめ情報