Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Home : Excel 2013)
非表示になっている行を入力出来ないように保護をかけるVBAコード
投稿日時: 19/02/02 12:46:28
投稿者: Totat

A列は1〜1000までの番号があります。
B列にはA列の1〜1000の番号で該当する番号には〇をしそれ以外は空白となっています。
C列には1か2の番号がふってあり、1の場合は行を表示し2の場合は非表示になっています。
 
この状態でもC列が2でその行が非表示になっている場合のその行全てを編集できないようにするVBAコードを押せてください。

回答
投稿日時: 19/02/02 14:56:30
投稿者: WinArrow
投稿者のウェブサイトに移動

当該行(非表示の行)は、誰(人 or VBA)、どのようなタイミングで、
非表示にしているのでしょうか?
 

回答
投稿日時: 19/02/02 18:11:30
投稿者: mattuwan44

「シートの保護」をすれば、セルの高さなど変更できると思います。
 
コードを知りたければ、その操作を「マクロの記録」という機能でVBA語に翻訳させれば、
コードは解ると思います。
 
というか、場当たり的にマクロを作るより、
見せるデータは、見せる用のシートを作って、
そのシートに転記してみせて、
元のデータをユーザーが触れないように作った方がいいと思います。
その方が、無意識にするユーザーの操作に対して、データが安全だと思います。
 
わからない操作(用語)はネットで検索して調べてみてください。

回答
投稿日時: 19/02/02 22:15:56
投稿者: もこな2

横から失礼します。

Totat さんの引用:
この状態でもC列が2でその行が非表示になっている場合のその行全てを編集できないようにするVBAコードを押せてください。
とのことですが、
Q&A 掲示板ご利用上のお願い さんの引用:
禁止事項
コード制作依頼
「●●●を実行するようなマクロを作りたいのですが」「●●●をする方法を教えてください」といった、コード制作依頼ともとれるような質問はおやめください。
ということですから、とりあえず自分でたたき台を作ってから、相談するようにされたほうがよいです。
 
そのうえで、mattuwan44さんもおっしゃっているようにシートの保護をつかうと、不要な編集を抑制することができます。
 
加えて、WinArrowさんが確認されているように、非表示にするのがVBAだとすればですが、あらかじめセルのロックを外しておき、非表示にするタイミングでセルのロックをするようにすれば、シートの保護が有効な状態でロックされたセルは編集できない。というようになるとおもいますので、これをコード化してみてはいかがでしょうか?

投稿日時: 19/02/02 22:27:08
投稿者: Totat

ルールの確認が漏れて申し訳ありませんでした。
皆さまのアドバイスありがとうございました。

回答
投稿日時: 19/02/03 09:30:17
投稿者: WinArrow
投稿者のウェブサイトに移動

そもそも、「行」を非表示にする目的は何でしょう?
 
入力させないつもりの手段ではないかと思いますが、
それが無意味(わざと入力している人がいる)になっているとすれば、
保護するなりの対策が必要です。
しかし、C列セルに「2」を入力した段階で、非表示している(VBA)のか?
当該ブックを開くときに、非表示にしているのか?
そのあたりが見えないと、貴方が意図するコメントは得られないと思います。
 
 
ただ、「コメントありがとうございます」だけの回答は不要です。

トピックに返信