• 締切済み

エクセルで過去の行だけ保護できる?

エクセルで、例えば家計簿をつけるとして、毎日上から順に入力してい くとして、昨日まで入力したデータを誤っていじってしまわないように 保護できたら便利なんですが。今日入力したら、明日は今日入力した 行は保護されていじれなくなるという機能がエクセルにはありますか?

みんなの回答

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

>エクセルには「既入力セルの範囲」を自動的に検出する機能があるのですか? これまで入力したリスト範囲を選択する操作は、リスト上のセルを選択し、CtrlキーとShiftキーを押しながら:(コロン)のキーを押します。 >ですがビジュアルベーシックは苦手なもんで。 エクセルには「新しいマクロの記録」というマクロコードを自動的に書いてくれる機能があります。 たとえば、今回の例の場合は以下のような操作で必要なコードを取得できます(Excel2003の場合)。 準備として、Ctrl+Aですべてのセルを選択し、右クリックから「セルの書式設定」の保護タブで「ロック」のチェックを外しておきます。 「ツール」「「マクロ」「新しいマクロの記録」で「OK」します。 次にリスト上のセルを選択し、Ctrl+Shift+:のショートカット操作を行い、右クリック「セルの書式設定」の保護タブでロックのチェックを入れ、「記録終了」ボタンをクリックしマクロの記録を終了します。 これで今後この操作を自動的に行うには「ツール」「マクロ」「マクロ」でこのマクロを選択してOKすればリスト範囲が自動的に「ロック」がかかることになります(ボタンなどに登録することも可能)。 この操作をファイルが開いたときに自動的に行いたいなら、そのシートのシート名部分を右クリックし「コードの表示」で表示されるVBEの画面の左側のVBEプロジェクトのThisWorkBookをダブルクリックして、表示される画面の左上を「WorkBook」にして Private Sub Workbook_Open() End Sub の部分の空白行に、上記で作成したコード部分(標準モジュールのModule1をダブルクリックして表示されるコードの1行目と最終行は不要)をコピー貼り付けし上書き保存すれば、次回ファイルを開いたときに自動的にこのマクロを実行します。

line1964
質問者

お礼

参考になりました。ありがとうございました。 「新しいマクロの記録」で生成されたプロシージャを 呼び出すことでうまくいきました。

全文を見る
すると、全ての回答が全文表示されます。
  • WWolf
  • ベストアンサー率26% (51/192)
回答No.2

こんにちは。 機能はありませんが、作ることは出来ます。 家計簿で毎日上から順に入力と言う事は行単位で日にちが変わっていくような感じだと想定します。 質問内容というか条件がハッキリしないので取り敢えず簡単に作成しました。 下記をVBEにてThisBookに貼り付けてください。 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim WSh As Worksheet For Each WSh In Worksheets WSh.Unprotect WSh.Cells.Locked = False lr = WSh.Range("A65536").End(xlUp).Row WSh.Rows("1:" & lr).Locked = True WSh.Protect Next End Sub これは、単純に各シートのA列の最終列をその日とし、保存時にセルに対しロック設定をします。 この場合、同日に変更は出来ません。というか保護を外せば出来ます。 色々と決め事が無いと使いにくくなると思いますが、参考まで・・・

line1964
質問者

お礼

回答ありがとうございます。 ですがビジュアルベーシックは苦手なもんで。

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

エクセルの一般機能では自動的に入力したセルを保護するような機能はありません。 普通は、セルの書式設定の保護タブですべてのセルの「ロック」を外しておいてからシートを保護し、既入力部分だけを順次ロックをかけるというような手順になります。 この処理を自動化したいならマクロを使うことになります。 たとえばブックを開くときに既入力セルの範囲(シートのレイアウトによってこのセル範囲を取得するコードが変わる)のロックを入れるというような手順が簡単かもしれません。

line1964
質問者

お礼

回答ありがとうございます。エクセルには「既入力セルの範囲」を自動的に検出する機能があるのですか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルでの行ごとの保護

    エクセルで1行ごとに情報を入れていきます。 どんどん行が増え情報が溜まっていきますが、消されては困るので行を保護したいと考えます。 そこで各行の先頭に保護(数字でも構いません)と入力するとその行だけ保護されるということはできませんでしょうか。 マクロもよく分からない初心者です。よろしくお願い致します。

  • エクセルシートの保護について教えてください

    エクセルシートの保護は出来たのですが 時系列順に入力したもを自動的にセルの保護する機能は あるのでしょうか。 セルの上書き防止の為に機能を探しております。 どうぞ宜しくお願いします。

  • エクセル、行のランダムについて

    エクセル、行のランダムについて エクセルで行のランダムについて教えてください。 仮にエクセルシートに以下のようなデータがあるとします。  |  A  |  B  |  C  |  D  |  E  | 1|    |今日は |昨日は |明日は |    |  2|    |良い  |悪い  |普通の |最悪な |  3|    |1日  |日   |    |    |  4|    |でした。|だった。|    |    |  このようなデータがあるとして、各行、ランダムに1つ選び、A列に入れて文章を作成したいのですが、どのようにすればいいでしょうか?

  • エクセルの保護についてお伺いいたします。

    エクセルの保護についてお伺いいたします。 シートA1からA5は入力用として使うため、ロックを外してシートを保護しました。しかしA1のセルをクリックしてドラッグすると下の方に移動ができてしまいます。ここに入力したデータはC1からC5の横方向へ順番にリンクさせて、VBAでarray関数の配列として使いたいと思っています。間違えてA1セルを移動させてしまうとデータの配列順も変わるため困っています。セルの移動ができないようにする保護の方法はないでしょうか。エクセルまたはVBAどちらでも構いませんのであればよろしくご教授お願いいたします。

  • エクセルの保護について

    エクセルの保護に付いて教えて下さい。 あるSheetを入力テンプレートとして使用しています。(多数の人が使用します。) sheet中の特定のセルのみに入力してもらい、それ以外のセルはいじられたくないのでシートの保護をかけました。 ただ、要件上、行がものすごく多いのである単位でグループ化をしています。 この設定を行ったところ、シートの保護をするとグループ化の+、-ボタンも保護対象となってしまい行を展開したり圧縮したりする事が出来なくなってしまいました。 この問題を解決する事は出来ますでしょうか?? 出来ればエクセルの標準機能で対応したいのですが、、、 もし、マクロでしか出来ないのであればそれでも結構です。 よろしくお願いします。

  • エクセルで上書き保護について教えてください。

    エクセルで番号の管理台帳を作成しています。 複数の人が入力する関係上、一度入力し保存したデータについては保護したいのです。現在「入力規制」の設定にて1行毎にパスワード(行番号)を設け、なんとなく保護しているといった感じです。「入力規制」の設定も面倒で1行毎に設定しなければならず、数百行も設定していたら腱鞘炎になってしまいます。なにか良い方法御存知の方教えてください。

  • エクセルでユーザーフォームを利用したいのですが・・・

    エクセルでユーザーフォームを利用したいのですが・・・ ユーザフォームは作れるのですが、なにせ、コマンドボタンを押したときのマクロを教えていただきたいです。 たとえば、A欄に日付B欄に会社名C欄に数字を入力するとしまして、 とうぜん、ユーザーフォームには日付、会社名、数字の入力ボックスとコマンドボタン(入力ボタン)があるわけです。 入力ボタンを押せば順に入力していただきたいのですが、条件があるのです。 その1、1行目2行目は使いますので3行目から入力してもらいたい。 その2、入力順、日付順に並べてほしい。 その2をもう少し詳しく書かせていただきますと、今日に10行分のデータを入力したとしまして あしたの分も2行ほど早めに入力したとします。 明日の分は当然、明日の日付でするわけです。 さて、今日の分を追加したいとき、明日の日付の前にこないと駄目という条件でございます。 よろしゅうおねがいします。

  • Excelで2行単位のソートの出来る方法があれば教えてください。

    Excelはとっても便利ですが、データの並び替え・フィルタ処理をするには、1行単位で行うようです。 項目が多い場合、1行単位でデータを記入すると横(若しくは縦)に相当広がり入力が大変不便です。 そこで2行単位で項目を設定して入力しますと約半分の長さになり、入力もしやすくなります。 そこでご質問ですが、このような2行単位でのデータの並び替え、又はフィルタを使う場合、1行単位でソートされてしまいデータがめちゃめちゃになってしまいます。 どなたか、もしExcelでデータの並び替え、又はフィルタを行う場合、2行単位で出来る方法をご存知でしたら教えて頂けないでしょうか。 当方、ちなみにExcelにおきましては、簡単なマクロ処理などを行う知識ぐらいです。 Excel VBA につきましては、ボタン等の設定程度です。 以上、よろしくお願いします。

  • エクセルで繰り返しデータ入力

    エクセル初心者です。 Sheet1のH列2から20行に毎日複数のデータ入力があり、その入力データはSheet2に日付順で1日から31日までの行を割り当て、転記される設定は可能でしょうか。翌日は又Sheet1のH列2から20行に毎日複数のデータ入力しこの繰り返しです。

  • Excel行スクロール

    Excelの行スクロールで教えてください。 100行分のデータがあるときは100行分で行スクロールバーが出ます。 1万行分のデータがあるときは1万行分で行スクロールバーが出ます。 ところが、一度1万行のデータがあった後、9900行を削除しても行スクロールバーは1万行分のままです。データが100行分になったので100行分の行スクロールバーにしたいのですが、やり方がわかりません。 Excel2000です。Excelの一般機能としての操作方法とExcelVBAでの方法をお願いします。

このQ&Aのポイント
  • スマートフォンでkindleのページを印刷する方法について教えてください。
  • 使用する製品はDCP-J567Nです。
  • スマートフォンのOSはAndroidで、無線LANで接続しています。関連するソフトはbrother iPrint&Scanです。電話回線はひかり回線です。
回答を見る

専門家に質問してみよう