[[20190314122836]] 『特定列以外の列幅をロックしたい』(げん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『特定列以外の列幅をロックしたい』(げん)

お世話になります。
現在特定範囲のセル以外の編集をロックするシートを作成しています。
その特定範囲だけ列幅と行高の変更を許可できるようにしたいのですが、
どのようにすればよいかがわかりません。
現状ではロック範囲以外の列と行の大きさも変更できてしまっています。
(シートの保護をするマクロにAllowFormattingRows:=True, AllowFormattingColumns:=Trueを入れています。)

いったんすべての列と行を保護したうえでUserInterfaceOnly:=Trueを用いてマクロでのみ変更を許可する形式は
マウスで直感的にしか操作できないユーザーに受け入れられなかったため不可です。
列見出しと行見出しをドラッグする形式で操作を可能にしたいです。

どのようにすれば良いでしょうか。
(ユーザー側のバージョンとOSは多岐にわたるため不明にします。)

< 使用 Excel:unknown、使用 OS:unknown >


バージョンとOSが複数あるといっても、MacかWindowsかくらいは統一されていませんか? あと、Excel2003までと2007以降でがらっと変わっているので、最古と最新のバージョンくらいは特定できませんか?

そして、ロック機能では、特定範囲以外だけサイズ変更をロックするのはできないような気がします。

別案として、シートを保護しなくても、「見出し」の表示をオフにすると灰色部分の選択ができなくなるので、実質セルのリサイズができなくなります。 これを利用できないか、というのが1点。(禁止したいのがリサイズだけならば、ですが)

更に、全ての行・列変更不可状態で、変更可能範囲外側に図形(セル単位で1図形)を置いておき、クラスモジュールで図形のリサイズイベントを拾って、マクロでセルの行・列を図形に連動するよう変更する、とか出来そうな気がしますが、かなり難しいコードになりそうですし、2003以前にも対応できるのか判りません。
(???) 2019/03/14(木) 13:49


図形のリサイズ検出方法は、以下で見ました。ichinoseさん作のようです。
http://www.vbalab.net/vbaqa/data/excel/log/tree_342.htm

試しに、行・列の書式設定変更不可、オブジェクトの編集可にしてロックした状態で、リサイズ検出できました。
(???) 2019/03/14(木) 13:57


お返事ありがとうございます。
コードの確認はまだですが取り急ぎお返事します。
バージョンは2007以降、OSはwindows限定とお考え下さい。
あと、見出し表示オフは大きさ変更を可能にしたい列や行の見出しをドラッグした形での大きさ変更ができなくなってしまうので不可です。
また、大きさ変更をさせたくない行や列の中にはhiddenも含まれているので
(ロック解除マクロと連動してhidden=falseにしています)
まだ未検証ですが図形連動も難しそうに思っています。
検証後またお返事申し上げます。

追記ですが、範囲内を選択したときだけロックを解除するprivate_subを試してみましたが
範囲内選択中はどの列や行も変更できてしまうのでうまくいきませんでした。
(げん) 2019/03/14(木) 15:04


WINDOWS限定なら、私の案は使えそうです。(図形リサイズ検出のコードは、2003で動きそうでしたが)

そして、見出しは消しますが、見出しに見えるようにセルサイズと一致させた図形を、上と左に並べるのですよ? こうすると、見出しオフでも、自作見出しがある状態になります。自作見出しをリサイズすると、リサイズが終わると同時にロック解除、セル幅または高さ調整、再びロックする感じになるでしょう。

ただ、本物の見出しではないので、マウスカーソルがリサイズ型にならないとか、おそらく縦方向に短めで中点が表示されないので、右下とかをドラッグするようになるだろう、とかありますが。 本物の見出し行・列でなければ駄目!、というならば、指定範囲のみリサイズ可というのは無理じゃないでしょうか。
(???) 2019/03/14(木) 15:30


もっと簡単な別案ですが、リサイズは自由にさせておいて、ブック保存または開いたときに、マクロで指定範囲以外の幅と高さを全部初期値に変えてしまう、とか?

できない事を頑張るより、できる事で解決してはどうでしょうか。
(???) 2019/03/14(木) 15:51


お返事ありがとうございます。
また、こちらの返事が遅くなり申し訳ありません。
図形を用いた列幅と行高の変更は、やはり見出しを直感的に操作するのとは格段に操作感が違うために不可になってしまいました。
(図形の周りの8つの点だけでユーザーの頭がオーバーフローしている様子でした。)
別案の形でいこうと思います。
いろいろご検討いただき本当にありがとうございました。
(げん) 2019/03/15(金) 12:24

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.