[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『特定列以外の列幅をロックしたい』(げん)
お世話になります。
現在特定範囲のセル以外の編集をロックするシートを作成しています。
その特定範囲だけ列幅と行高の変更を許可できるようにしたいのですが、
どのようにすればよいかがわかりません。
現状ではロック範囲以外の列と行の大きさも変更できてしまっています。
(シートの保護をするマクロにAllowFormattingRows:=True, AllowFormattingColumns:=Trueを入れています。)
いったんすべての列と行を保護したうえでUserInterfaceOnly:=Trueを用いてマクロでのみ変更を許可する形式は
マウスで直感的にしか操作できないユーザーに受け入れられなかったため不可です。
列見出しと行見出しをドラッグする形式で操作を可能にしたいです。
どのようにすれば良いでしょうか。
(ユーザー側のバージョンとOSは多岐にわたるため不明にします。)
< 使用 Excel:unknown、使用 OS:unknown >
そして、ロック機能では、特定範囲以外だけサイズ変更をロックするのはできないような気がします。
別案として、シートを保護しなくても、「見出し」の表示をオフにすると灰色部分の選択ができなくなるので、実質セルのリサイズができなくなります。 これを利用できないか、というのが1点。(禁止したいのがリサイズだけならば、ですが)
更に、全ての行・列変更不可状態で、変更可能範囲外側に図形(セル単位で1図形)を置いておき、クラスモジュールで図形のリサイズイベントを拾って、マクロでセルの行・列を図形に連動するよう変更する、とか出来そうな気がしますが、かなり難しいコードになりそうですし、2003以前にも対応できるのか判りません。
(???) 2019/03/14(木) 13:49
試しに、行・列の書式設定変更不可、オブジェクトの編集可にしてロックした状態で、リサイズ検出できました。
(???) 2019/03/14(木) 13:57
追記ですが、範囲内を選択したときだけロックを解除するprivate_subを試してみましたが
範囲内選択中はどの列や行も変更できてしまうのでうまくいきませんでした。
(げん) 2019/03/14(木) 15:04
そして、見出しは消しますが、見出しに見えるようにセルサイズと一致させた図形を、上と左に並べるのですよ? こうすると、見出しオフでも、自作見出しがある状態になります。自作見出しをリサイズすると、リサイズが終わると同時にロック解除、セル幅または高さ調整、再びロックする感じになるでしょう。
ただ、本物の見出しではないので、マウスカーソルがリサイズ型にならないとか、おそらく縦方向に短めで中点が表示されないので、右下とかをドラッグするようになるだろう、とかありますが。 本物の見出し行・列でなければ駄目!、というならば、指定範囲のみリサイズ可というのは無理じゃないでしょうか。
(???) 2019/03/14(木) 15:30
できない事を頑張るより、できる事で解決してはどうでしょうか。
(???) 2019/03/14(木) 15:51
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.