トップページ > プログラム > 2014年09月18日 > NRNOSfJW

書き込み順位&時間帯一覧

8 位/207 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000122000000000005



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Excel VBA 質問スレ Part34

書き込みレス一覧

Excel VBA 質問スレ Part34
617 :デフォルトの名無しさん[]:2014/09/18(木) 10:33:08.86 ID:NRNOSfJW
>>610
分からない。
当時発見したときは、「ほうほう、こんな方法があったのか!」とものすごく感動した思いがあるので
やりかたが存在するのは確か。

オレはネット検索したりオブジェクトブラウザを見たりVBA本を数冊読んだりすることくらいしかしないから
そのうちのどれかから見つけたのだと思うけど、いまだにどうやって見つけたかはさっぱりわからない。

もちろん夢とかじゃないだろう。
Excel VBA 質問スレ Part34
619 :デフォルトの名無しさん[]:2014/09/18(木) 11:49:38.12 ID:NRNOSfJW
>>618
たしかWindowという文字列を使った覚えがある。
それかもしれない。
ところで、そのアクティプじゃないWindow(ブック?)の アクティプセル取得ってどうやるんだ?
Excel VBA 質問スレ Part34
621 :デフォルトの名無しさん[]:2014/09/18(木) 11:54:24.19 ID:NRNOSfJW
>>620
それだ!
Excel VBA 質問スレ Part34
623 :デフォルトの名無しさん[]:2014/09/18(木) 12:03:23.15 ID:NRNOSfJW
Bookを増やすとWindowも増える。

つまり
Workbooks.Count = Windows.Count
の関係にある。

しかし例えばCount=5のとき
Workbooks(1)=Windows(5)
Workbooks(2)=Windows(4)
Workbooks(3)=Windows(3)
Workbooks(4)=Windows(2)
Workbooks(5)=Windows(1)
という不思議な関係がある。

Windowsってなにものなんだ?
存在意義は?

とりあえずこれですべてのBookの各ActiveSheetとActivecellのオブジェクトを、それをいちいちActivateせずに取得できるようになった。

Windows(n)にはActivesheetのプロパティもActiveCellのプロパティも存在するから。
BookについてはWindows(n).Parentで取得できるし。
Excel VBA 質問スレ Part34
624 :デフォルトの名無しさん[]:2014/09/18(木) 12:09:23.49 ID:NRNOSfJW
>>622
ブックをたくさん開いて、いろんなシートでいろんなセルをActivateにしたあと、
次のコードを実行してごらん。

Sub ActiveObjectCheck()
Dim w As Window
Dim i As Integer
i = 1
Cells(1, 1) = "Book"
Cells(1, 2) = "ActiveSheet"
Cells(1, 3) = "ActiveCell"
Range(Cells(1, 1), Cells(1, 3)).Interior.Color = rgbGray
For Each w In Windows
i = i + 1
Cells(i, 1) = w.Parent.Name
Cells(i, 2) = w.ActiveSheet.Name
Cells(i, 3) = w.ActiveCell.Address(False, False)
Next w
End Sub


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。