Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2016)
表示タブのリボンで´見出しCheckBoxを無効にしたいと思います。
投稿日時: 24/02/20 18:49:14
投稿者: でで

徴収金額を内訳別にして合計した徴収表があります。合計金額が0を超える人をオートフィルタで絞り込み、別シートにコピーします。コピーしたデータから一人一人の内訳金額、合計額を取り出し納入令書(請求書)に入力[自動]していきます。
 
 
このシートは数式を設定したセルが有り、誤って数式が削除になれば納入令書(請求書)が作成出来なく
なります。
誤操作の防止で、コピーしたデータ、数式設定したセルが有る列は非表示、列番号も非表示にする事を考えました。行列番号非表示で現在VBA作成中です。
 
表示タブのリボン 見出しCheckBoxで行列番号の非表示・表示が出来るので、出来ないように無効設定を
したいと思います。ネットで検索してみますとタブ全体を非表示にする構文はありますが、その内の一つだけ無効設定する構文は見つけられませんでした。
 
ご存知の方ご教示下さいますようお願い致します。

回答
投稿日時: 24/02/20 19:32:43
投稿者: simple

・当該シートがアクティブになったとき、
・当該シートがアクティブでなくなったとき
というイベント処理が可能です。
そのイベントプロシージャで
ActiveWindow.DisplayHeadingsを操作したらよいのではないでしょうか。

投稿日時: 24/02/20 22:00:53
投稿者: でで

投稿者 simple 様
 
回答ありがとうございます。
 
説明不足かも知れません。
データをコピーしたシート(納入令書(請求書))シートは通常は、行列番号は非表示としています。
その時に表示タブのリボン 見出しCheckBox をチェックされると非表示が表示になり、行列番号が表示
されてしまいます。
 
納入令書(請求書)シートが選択中の場合には行列番号が表示されないよう、見出しCheckBoxが操作出来ない(無効設定)状態にしたいのです。

回答
投稿日時: 24/02/21 06:55:26
投稿者: simple

そのシートをアクティブにした時に、行列見出しを非表示にするという方法をコメントした積りです。
 
行列見出しの非表示・表示切替を抑止する手段を求めているようですが、
そうしたものは無いと思います。
もともと、容易に切り替えできるようにとMS社が作った道具なわけですから。
 
元に戻ると、
> このシートは数式を設定したセルが有り、
> 誤って数式が削除になれば納入令書(請求書)が作成出来なくなります。

ということからすると、数式を変えられないようにしたい、というのが本来の目的ですか?
であれば、数式セルだけにロックを掛けて「シートを保護」(必要に応じてPWを付与)というのが
素直な対応ではないですか?こうしたアプローチはとらないのですか?

投稿日時: 24/02/21 11:16:52
投稿者: でで

投稿者 simple 様
 
二度のご回答、ご教示ありがとうございます。
 
リボンのカスタマイズで、表示タブのリボン 見出しCheckBox を含む表示グループが削除出来る事から
VBAでも、見出しCheckBox の無効化(又は表示グループの無効化・削除)は可能ではないかと考えています。
 
 
元のデータに変更があった場合、コピーしたデータがあればオートフィルタを実行しなくても変更する事
が出来てしまいます。
直接変更しないよう(その時に誤操作)数式の削除等)が無いように)非表示にしてオートフィルタを実行してコピーさせたいと考えています。本来こちらが目的でした。
 
見えなくしてしまえば誤操作は無いので、これで良いと考えています。
 
 
共用のパソコンで使用するのでリボンのカスタマイズはしない方が良いのではと考えています。

回答
投稿日時: 24/02/21 13:51:17
投稿者: simple

そういう場合の最も基本的な対応策である「シート保護」を提案しましたが、
採用されない理由が今一つ理解できません。詳しく説明いただくと回答者の今後の回答に
役立つと思われます。
 
見出しの表示・非表示のcheckboxを見えなくさせたところで
列選択(セル選択してCtrl+space)して、右クリックメニューから
いくらでも列の表示非表示の変更はできます。余り有効な策とも思えません。
 
また、
>共用のパソコンで使用するのでリボンのカスタマイズはしない方が良いのではと考えています。
と書かれていますが、されようとしているのは、まさにリボンのカスタマイズではないんですか?
どうしてもということなら、きぬあささんの初心者備忘録を既にお読みかもしれませんが、
そちらをよくお調べください。(IRibbonUIオブジェクトを操作することになるのでしょうか。)
私は詳しくないので、リボンの件は以上とさせてください。
 
ひとまず私はここで区切りとさせていただきます。

投稿日時: 24/02/21 15:24:52
投稿者: でで

投降者 simple 様
 
更なるご回答、ご教示ありがとうございます。
 
 
シートの保護で考えてみます。なお、きぬあささんの「初心者忘備録」を調べてみたいと思います。
 
 
解決済みとさせてください。ありがとうございました。