[[20200108153209]] 『入力済のセルにアクセス出来ないようにしたい』(高齢初心者) ページの最後に飛ぶ

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

 

『入力済のセルにアクセス出来ないようにしたい』(高齢初心者)

不特定多数の人が入力する表を作成しました。初心者が多く入力して欲しい
セルにはリストの中から選べるようドロップダウンを採用しました。しかし既に入力しているセルにアクセスして壊してしまう事が有ります。
そこで入力済セルにはアクセス出来ないように設定したいのですが
方法が解りません。この表は同一シート内でドラックコピーしてページ数を増やして行きたいのでシートの保護は使えないと思います。
方法を教えて下さい。

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


どんなシートレイアウトなのでしょう? 特に、ドロップダウンと言っているセル範囲はどこなのか。
また、ドロップダウンとは、「データの入力規則」の事でしょうか?

あと、セルを壊すと言っていますが、どのように壊すのでしょう? 他のセルをコピペして入力規則を無くしてしまう事を言っているのか、DELキーで値を消してしまう事を言っているのか。 一旦選んだ選択肢を、別の内容に選び直す、という行為も禁止ですか? 随分と人間のミスに厳しい考えに思いますが、それは使いにくくないですかね?
(???) 2020/01/08(水) 15:59


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'シートモジュール
  If Target.Value <> "" Then Target.Next.Select
End Sub
(mm) 2020/01/08(水) 16:05

対象シートの他に、もう1つワーク用シートを使う案なぞ。
 Private Sub Worksheet_Change(ByVal Target As Range)
    Dim R As Range

    With Sheets("Sheet2")
        For Each R In Target
            If R.Value <> "" Then
                If .Range(R.Address).Value <> "" Then
                    Application.EnableEvents = False
                    R.Value = .Range(R.Address).Value
                    Application.EnableEvents = True
                Else
                    .Range(R.Address).Value = R.Value
                End If
            Else
                .Range(R.Address).Value = ""
            End If
        Next R
    End With
 End Sub

一旦選んだセルは、他の値にしようとしても、元に戻してしまうロジックです。 なお、DELキーで削除する事は許しており、削除した後は他の値を選択できます。

(???) 2020/01/08(水) 16:14


 >そこで入力済セルにはアクセス出来ないように設定したい

タイプミスは初心者じゃなくてもあることです。
ご記入の修正が出来なくなるのは賛成できません。
また、複数行を一度に編集できるのも、
エクセルのいいところなので、
その仕様を拒否することも賛成できかねます。

マクロを作ったら、そのような制御も可能かと思いますが、
だれがメンテナンスするのか?
と考えたらお勧めできません。

1案として、
フォーム機能を使って入力・修正するということが出来るかも知れません。
が、入力規則のリストがそこで使えるかどうかは定かではありません。
この辺は実験して使えるかどうかを確認願います。

2案目として、
表をテーブルとして設定してはいかがでしょうか?
マウスでのフィルダウン機能でのコピーで誤操作が頻発するならば、
フィルダウンを使わないというルールで運用してはいかがでしょう。
テーブルとして設定しておけば、数式部分は行が増えたときに、
勝手に数式が入るようになります。
(勝手に表が拡張される。)

また、上の行をコピーするときは、
Ctrlキー+Dキー 押下で、上をコピーできます。
手がマウスとキーボードをうろうろするほど入力作業に時間が掛かりますし、
誤操作も多くなるかと思います。
(キーボードを職人的に駆使することが逆に難しいと感じるかもしれませんが^^;)

他には、
バックアップソフトを別途導入し、
1日1回バックアップを行いその履歴を5回分くらい残しておけば、
間違って変更した箇所も復元可能になるのではないかと思います。

(まっつわん) 2020/01/08(水) 18:44


回答ではないのですが、
「入力済みのセルは変更できない」というのは、
"ファイルを開いた時点で"既に入力済みのものは、
という意味ですかね。それも保護機能つかわなかったら実現難しそうだけど。

その人が入力したものまで修正不可というのは、
そんな殺生な、という感じです。
慣れない人ほど修正はありそうだし、
それ禁止されたらパニクって、何をしてくれるかわかりませんよww。
人道的見地からもそれはやめたほうがいいいです。
(γ) 2020/01/08(水) 19:02


反応して頂いた皆様ありがとうございます。
初心者故に質問の仕方もへたくそで済みませんです。
今まで考えたのですが再度質問させてください。
下記の様な表を作成しました。
1のB〜Eを結合してタイトルとしました。
2Cに班名を入れてますが入力規制をかけリストから選択するようにしました。
同様に2Dは氏名でリストから選択
同様に3Bは月、3Dは日、3Fは曜日、4B〜4Gは地名を入力しますが
全てリストからの選択するようにしました。
紙ベースの報告書では末に印刷されている記入不要な枡(セル)に記入する人はおりませんが
PCですと誤って入力済のセルにアクセスして元の値を変更してしまう危険が有ります。
そこで1B、2A、2B・・・の様に入力済のセル、1Aの様に入力不要のセルにはアクセス出来ないようにしたいのです。
又この表は次々にコピーして1年間使用しグラフ作成に直結させておりますのでシート保護の手法は使用不可と思っております。
選択したセルにアクセス出来ないようにし、さらにこれらを同一シート内で
ドラックコピー可能にする方法をご伝授願いたい。
当方初心者です、手取り足取りの様な解説をお願い致します。

  A   B   C   D   E   F   G
1     巡 回 報  告  書
    
2 報告者 班名 
    
3 日付     月      日      曜日
 
4 巡回地

(高齢初心者) 2020/01/15(水) 11:36


2Cとか3Bとか、何ですか? セル座標ならば、A1形式というくらいですから、列を先に書いてください。 真面目な場で、業界用語とか、JK語で会話されているような違和感があります。

私のコードは試しましたか?(シートモジュールに貼り付けます) 手取り足取り教えろ、じゃなくて、判らない箇所はご自分でWeb検索やヘルプで調べて、それでも判らないような点をピンポイントで質問してください。 余分な事まで書くつもりはないですからね。 実現したいのは貴方であって、回答者はその手助けをしているだけです。 自力で歩こうとしていない人を、おぶってまで移動を助けるつもりはありませんよ。

一度入力すると、それを書き換えようとしても、すかさず元の文字列に戻すコーディングにしているので、最初から入力しておく部分があるならば、その文字列もワークシートにコピペしておけば、同じように書き戻されるようになりますが、それでは駄目なのですか?
(???) 2020/01/15(水) 11:53


・変更不可のセルはロックし
・変更可能なセル(入力規則を使った入力セル)はロックをはずしたうえで
シートを保護するのが基本です。
表を増やすには、特定の人が保護をはずしたうえで処理し、
再度保護すれば良いと思います。

こうした基本的処理ではどこに支障があるのかを
箇条書きで説明して下さい。

(γ) 2020/01/15(水) 13:08


何日毎に報告するかわかりませんが、
報告済みの分はさっさとシート上から他に移して
消せばいいかと。。。

未報告の中で変わっちゃうのは、報告時にチェックしてもらうしかないかなぁ。。。。

初心者を強調されるなら手の込んだことを思いつかない方がよいかと。
頑張っていろいろ出来るようになりたいなら、
アドバイスをもらいながら勉強したらいいかと思います。

(まっつわん) 2020/01/15(水) 13:30


皆さんとかぶりますか。

■1
>当方初心者です、手取り足取りの様な解説をお願い致します。
私見ですし、年配の方にこのように言うのは気が引けますが、こちらは「質問掲示板」であり「業務サポートセンター」ではありませんので、それは難しいのではないでしょうか。

■2
また、こちらも私見ですが、既に提案を受けていらっしゃるように「マクロ」を使えば有用性・利便性はともかくとして、仰るようなことは可能と思われますが、これを機会にマクロを学んでみようと思われるのでなければお勧めしません。
[[20181203092914]] 『出納帳』(70の爺さん)
↑の方のように誤解してほしくありませんが、マクロを使う場合どうしても"自力"でメンテナンスする必要が出てきます。
前述のように、これからご自身が主体となってマクロを学んでみるつもりであれば、分かる範囲で助言することはできますが、回答者側でマクロを作成して1から10まで説明してほしいというようにお考えなのであれば、きちんとしたところに対価を払って頼むべきです。
(授業内容が決まっているようなパソコン教室だと個別の対応は難しく、システム開発を仕事としている人に個別に頼む必要がありそうですから敷居は高いように思います。(私が知らないだけで、個別指導のパソコン塾は存在するのかもしれませんが・・・))

■3
なお、Excelでは一般的に「列文字、行番号」の組み合わせでセルを表現します。
したがって、 2D、3B ... → D2セル、B3セル....のようにアルファベットを先にされると伝わりやすいと思います。

■4
ついでに、C2(班名)、D2(氏名)のどちらも、入力規則でリストから入力してもらっているとのことですが、別シートにでも対応表を用意しておけば、Vlookup関数で「班名」は自動的に表示させられるとおもいます。(=班名を間違って"入力"されなくなる)

同じ考えで、3【行目】のB,C,F【列】は「月、日、曜日」となっていますが、Excelの場合「"年"月日」が分かれば、曜日は自動で表示できます。
さらに、年月日をまとめて1つのセルに入力するようにすれば、例えば「2019年2月29日」のように、あり得ない日付をいれても気付けるようになると思いますし、数式(関数)で、"日付"から「月、日、曜日」を別々のセルに自動表示させることも可能です。

したがって、操作ミスを絶対許さないということを考えるより、入力等がしやすいレイアウトにしてやり、出来るだけ操作を減らしてミスが誘発されにくくすることを考えた方が目的に近いと思います。

■5
ちなみに、↓は論点がずれていませんか。

 >末に印刷されている記入不要な枡(セル)に記入する人はおりません
 >誤って入力済のセルにアクセスして元の値を変更してしまう危険が有ります。

前者は、セルのロックをした上でシートの保護を設定することで入力できなくすることが可能ですし、選択すらさせなくすることもできます。
「この表は次々にコピーして1年間使用しグラフ作成に直結させておりますのでシート保護の手法は使用不可」については、表をコピーするときに、一時的にシート保護を解除するだけで済みます。

後者は、(紙なら書いてある上から文字を書く人はいないが、)PCですと誤って〜とのことなら、紙でもPCでも、既に何かが書いてある(入力してある)上から、"うっかり”書く人は居ないんじゃ無いでしょうか?

故に、紙でもPCでも【新しく書く】なら【空欄】に書くのであって、間違えて記入(入力)したからこそ【修正】するために【記入(入力)済の欄(セル)】に上書きしたくなるのではないでしょうか?

(もこな2) 2020/01/15(水) 15:40


コメント返信:

[ 一覧(最新更新順) ]


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