[[20250607145640]] 『I列に「済」と入力したらその行を編集できないよax(miki) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『I列に「済」と入力したらその行を編集できないようにロックしたい』(miki)

I列に「済」と入力したら、その行が編集できないように自動でロックされる数式等があれば教えていただきたいです。
また、「済」を消したらその行が解除できるように設定できるとありがたいです。
難しければロック解除の方法もご教授いただきたいです。

適用先:=$A$6:$H$1001

< 使用 Excel:Microsoft365、使用 OS:Windows10 >


 >編集できないように自動でロックされる数式等

 そういうものは存在しません 
(たぶん) 2025/06/07(土) 15:18:05


 そもそもですが、それは
 ・ご自身のミス防止のためですか?
 ・それとも改竄防止の観点ですか?
 それによって考えるべきことも違ってきそうです。
 目的を明確にされたほうがいいでしょう。

 既に指摘があったように数式では無理です。
 マクロということになりますね。
 ただ会社によってはマクロ禁止にしているところもあるなどと聞きますし、
 マク..と聴いただけで蕁麻疹が出てしまう体質で遠慮します、
 などということがひょっとしてあるかもしれません。
 その辺はどうなんでしょう。

 また、シート保護やロックについては理解されているということで良いですか?

(xyz) 2025/06/07(土) 16:27:02


 Private Sub Worksheet_Change(ByVal Target As Range)
     If (Not Intersect(Target, Range("I6:I1001")) Is Nothing) And (Target.Count = 1) Then
         Me.Unprotect
         Select Case Target.Value 
             Case "済"
                 Target.Offset(,9).Resize(,8).Locked = True
             Case ""
                 Target.Offset(,9).Resize(,8).Locked = False
             Case Else
                 ‘何もしない
         End Select
         Me.Protect
    End If
 End sub

(FL) 2025/06/07(土) 18:23:44


 Target.Offset(,-8)

 でしたすみません
(FL) 2025/06/07(土) 18:25:32

たぶん様

ありがとうございます。
(miki) 2025/06/08(日) 00:14:41


XYZ様
お返事ありがとうございます。

自身のミス防止のためになります。
マクロ、シート保護、ロックについて理解してない状態です。
お手数をお掛け致しますが、宜しくお願い申し上げます。
(miki) 2025/06/08(日) 00:15:22


FL様
お返事ありがとうございます。
また、数式?html?を教えて頂き、誠にありがとうございます。
こちらを条件付き書式の数式に入力すれば良いのでしょうか??
(miki) 2025/06/08(日) 00:31:24

 そのレベルですか。忘れてください。
(FL) 2025/06/08(日) 06:42:35

>こちらを条件付き書式の数式に入力すれば良いのでしょうか??
さらに「そういうものは存在しません 」、「数式では無理です。」と回答があります。
よく見てください。
>理解してない状態です。
理解して出直ししてください。

(匿名) 2025/06/08(日) 08:23:15


>自身のミス防止のためになります。
とのことなので、必ずしも「その行が編集できないように自動でロック」されずとも、
例えば対象行に着色し、視覚的に判断できれば良かったりしませんか?
それでしたら、おそらくご自身が理解されている条件付き書式で対処できます。

数 式 =$I6="済"
適用先 =$A$6:$H$1001
書 式 任意の色で塗りつぶし

他所に提出したりする必要が生じたら、条件付き書式のルールごと削除すれば良いですし。

(ニック) 2025/06/08(日) 08:39:27


 シート保護の使い方で割と一般的なのは、
 ・入力項目のセルは「ロック」をはずし、
 ・式が入っているセルは「ロック」を掛けて
 シート保護するというものですね。
 これによって誤って式部分に上書きしてしまうことが避けられます。

 入力部分はいったんすべて消去してから入力を始め、上書きをしないようにすれば
 それほど間違いは入りにくいのではないですか?(数値の入力間違いなどは避けようがありませんが。)
 前回のものを参考にするので消去はできませんということなら、
 ニックさんのご提案が有効かと思いました。

 こうしたシート保護の実際の操作手順などは、ご自分で検索されれば図解のものが見つかります。
 そのほうが理解しやすいと思います。頑張って下さい。

 マクロの案がFLさんから提示されましたが、もう少し学習されてからのほうがよいと思いました。
 例えば、1000行のものに一行ずつ済を入力するのは大変なので、まとめてコピーして済を入れるなどとすると
 コードに修正が必要になります。こうしたこともあるので、現状では利用は少し難しいと思います。
(xyz) 2025/06/08(日) 11:19:30

 xyzさん
 何故貴方に上から目線で粗探しをされる筋合いがあるのかわかりませんが

 Target.Count = 1 の条件を削除
 Dim rng As Range の宣言を追加
 For Each rng In Target に変更
 Select case rng.Value に変更
 rng.Offset(,-8).Resize(,8) に変更

 これで満足ですか?
(FL) 2025/06/08(日) 14:18:19

 For Each rng In Intersect(Target, Range("I6:I1001"))
 の方が正当ですかね?
 こんくらいのことでも勉強しろとか言ってきそうだなw
(FL) 2025/06/08(日) 14:21:31

 誤解があるようです。
 以下に書くこともどう受け止められるか分かりませんが、
 私は私で、自身の精神衛生のためにも自分の意図を書いておくことにします。

 2025/06/08(日) 00:31:24の質問者さん発言を読み、質問者さんの理解の状況からすると、
 もう少しマクロのことが分かってからトライされたほうがよいと思いました。
 今後、質問者さんが使ったとしても、何か修正点があっても立往生してしまいます。
 不可解な動きが発生してもコントロールできるとは思えませんでした。その一例を挙げた積りでした。
 別に回答コメントを批判する積りは一切ありませんでした。
 コメントの相手はあくまで質問者です。

 なお、Targetが単一セルと限定するか複数セルと考えるかという視点は、こちらの質問掲示板では
 よく議論に上るものであり、特に粗探しした積りも一切ありません。
 それは他の回答者さんにも理解してもらえるものと思い書きました。  以上
(xyz) 2025/06/08(日) 22:43:13

 >不可解な動きが発生してもコントロールできるとは思えませんでした
 > コメントの相手はあくまで質問者です

 言っていることが矛盾しているように感じるのは私の誤解ですか?

 質問主が私の提示したコードの方針を理解していなければ
 貴方の言う「複数行同時に編集した場合の処理」
 に対する改善点の指摘そのものが理解できないと思うんですが
 それを理解した上で「質問主に対して」わざわざ提示したという理論ですか?

 貴方の質問主に対する評価がご提示の様なら
 貴方のコードに関する補足は質問なしではなく
 むしろ私に対して行なっているように見えるのですが。

 精神衛生のため、と書かれていますが
 寧ろ貴方の方から私にケチをつけていると思っていますが
 何が被害者意識のようなものがあるのでしょうか?

(FL) 2025/06/09(月) 00:54:49


 > 不可解な動きが発生してもコントロールできるとは思えませんでした。
 それは私の「忘れてください」の発言を読んだ上で
 さらに私に対して「もっと勉強してこい」という趣旨の指摘を
 必要とするアドバイスでしたか?(そのつもりはないと言いそうですが)

 誤解だと言うかもしれませんが
 誤解されないような言い回しを考えてみては?
 むしろそう言った点で「もっと学習した方がいい」かと。
 敬語を使ってるから丁寧であるという理論は存在しませんからね?
(FL) 2025/06/09(月) 00:59:46

>誤解があるようです。
そう思うなら「コメントの相手はあくまで質問者です。」の一言で済むはずです。
くだらない文章はかえって混乱させます。
率直にお詫びしたらどうですか。
(匿名) 2025/06/09(月) 08:27:37

最近現れたFLさんとやら、被害妄想ひどすぎ、あるいは読解力なさすぎ。
xyzさんに対してもあまりいい印象は持ってないけど、これに関してはFLさん、あんたバカすぎ。
以上。

(新規参入) 2025/06/09(月) 09:57:25


 面白そうなので焚きつけます。
 FLさん、なんか反論した方がいいんじゃないですか?
 言われっぱなしですか?
 それとも認めたっていうことですか?
(TanTan) 2025/06/09(月) 13:57:01

 面白くはないでしょう

 (xyz) 2025/06/08(日) 11:19:30 の
 >もう少し学習されてからのほうがよいと思いました。
 という発言は、 
 FLさんが、自分に向けられた発言と感じたことは自体は事実であるとしても
 第三者的視点として、私は当初から質問者さんに向けた発言と受け取りました。

 すでにお互い言うべきことは言ったと思います
 これ以上質問者さんを置き去りにして、この場でやりとりする必要ありますか?

 煽るな
(他所でやれ) 2025/06/09(月) 15:10:28

 >(他所でやれ)
 他所でやれないからここでやってるの。
 質問者さんには悪いけど、xyzさんへはともかく、新規参入さんへ言いたいことはないのかなって。
 あんなこと言われっぱなしは嫌だろうから。

 あと、
 そのレベルですか。忘れてください。
(FL) 2025/06/08(日) 06:42:35
 の言い方も結構なもんよ。
(TanTan) 2025/06/09(月) 15:42:40

 >マクロの案がFLさんから提示されましたが、もう少し学習されてからのほうがよいと思いました。

前半だけ読むと質問者に向けたものだというのは明らかなんですが、後半の書き方が質問者がマクロの回答を希望して、質問者に対して知識不足だからまだ早いですみたいな言い方なので矛盾というか整合性が取れてないんですよね。
質問者はマクロに対して何も反応していないんですから、FLさんに向けたも発言って思われても仕方ないんじゃないですか。

マクロ案の回答をしたのはFLさんですし、(FL) 2025/06/08(日) 06:42:35の時点でマクロの話は終わってる。

質問者がマクロを採用して、そのコードにはこういう問題がありませんかみたいな話なら分かるんですが、そうじゃないのに他人のマクロのコードの発言をするってどうなんですか?
(質問者がマクロ自体理解していないのは明らかなので、取り上げる必要なんてどこにもないでしょう。)

(あ) 2025/06/09(月) 15:46:51


コメント返信:

[ 一覧(最新更新順) ]


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