[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ウィンドウ枠の固定』(人)
初めまして。質問させていただきます。
Dim FoundCell As Range Set FoundCell = Range("A1:AA10").Find("名前1") If Not FoundCell Is Nothing Then FoundCell.Offset(1, 0).Select ActiveWindow.FreezePanes = True End If
A1~AA10に名前1と入ったセルを探し、名前1の下のセルでウィンドウ枠の固定をしたいと思っています。
そこで、上記のコードをモジュールに入れてみたのですが、問題が発生しました。A1をアクティブにした状態ですと問題なく動くのですが、右端の方のセルとか、離れたセルをアクティブにした状態で実行しますと変な位置でウィンドウ枠が固定されてしまいます。名前1の下のセルを選択してから実行しているので、実行前のアクティブセルは関係ないと思ったのですが・・・。どのように書いたら良いかご教示いただけないでしょうか。よろしくお願い致します。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
こちらで試しましたが、上手くいきましたよ?
(SoulMan) 2018/03/02(金) 19:14
なるべくSelectしない様に↓こんな風に書いてみるとか Sub てすと() Dim FoundCell As Range Set FoundCell = Range("A1:AA10").Find("名前1") If Not FoundCell Is Nothing Then With ActiveWindow .SplitColumn = FoundCell.Column - 1 .SplitRow = FoundCell.Row .FreezePanes = True End With End If End Sub
(SoulMan) 2018/03/02(金) 19:26
後、一番気になるのはこれも定番ですけど、Findの引数は省略してはいけません。 実際の検索を記録して加工してみるといいかもしれません。 Set FoundCell = Range("A1:AA10"). _ Find("名前1", , xlValues, xlPart, xlByRows, xlNext, False, False)
(SoulMan) 2018/03/02(金) 19:50
誤解があると困るのでFindについて追加しておきます。 >Findの引数は省略してはいけません。 それでうまくHitしているのならいいんですよ でも、今回の様に挙動な動きをしているのなら一番見直す必要があるという意味です。 (SoulMan) 2018/03/02(金) 20:23
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.