Excel2010の部分的な行制御(追加)に関する質問

このQ&Aのポイント
  • Excel2010で特定の行に対して、新規追加を不可にし、データの編集を可能にする方法を教えてください。
  • また、行の一部に対しては新規追加やデータの編集を許可するシートの保護方法についても知りたいです。
  • VBやマクロを使用せずにパスワードを設定せずに行の制御を行う方法があれば教えてください。
回答を見る
  • ベストアンサー

Excel2010:部分的な行制御(追加)に関し

教えてください。 Excel2010でなのですが、ある部分1行目から20行目位までは、  ・行の新規追加は不可  ・行にあるDataに関しては、編集可能 とし、行11行目からは、  ・行の追加  ・Dataの編集など は、フリーで出来るといったロック制御・シートの保護は出来ますでしょうか? 下記のURLで ■http://office.microsoft.com/ja-jp/excel-help/HA010096837.aspxhttp://www.atmarkit.co.jp/ait/articles/0709/28/news153.html シートの保護をした時に行の追加不可はシートの全体に掛かってしまうようで、 部分的に行追加が出来ません。 VBなどマクロを組まないで、また、パスワードなど設定しないで上記のことは可能でしょうか? 以上、ご存じの方いましたら、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

普通に設定のみでは難しいですね。 質問には「20行目位」や「11行目から」があってよく分かりませんが、「1~10行には行が挿入できない」として考えました。下記マクロの「myProtect」を「True」にすると質問のような保護(のような動き)をします。これをシート側に出して、マクロで参照すれば操作性は上がるでしょう。基本的には「UnDo」をしています。 8~12行目のように10行目までをまたいだ挿入もできません。考え通りの動きをするか確かめてください。1~10行目を削除すると新たな1~10行目が制約の対象になります。挿入に制約があって、削除に制約がないのは?ですね。 シートのコードウィンドウに貼り付けます。 Const myProtect As Boolean = True 'Trueにしたら保護有効 Dim TargetRng As Range '選択したセル Dim TargetAdr As String '選択したセルのアドレス Sub Worksheet_SelectionChange(ByVal Target As Range)   Set TargetRng = Target   '選択範囲を記憶   TargetAdr = Target.Address End Sub Sub Worksheet_Change(ByVal Target As Range)   If myProtect = True Then     If Not TargetRng Is Nothing Then       If Intersect(Target, Range("1:10")) Is Nothing Then Exit Sub              On Error Resume Next              If TargetAdr <> TargetRng.Address Then         If Err.Number = 0 Then           Application.EnableEvents = False           Application.Undo 'UnDo           Application.EnableEvents = True         End If       End If              On Error GoTo 0     End If   End If End Sub

MSHIBATA_39
質問者

お礼

nishi6さん ありがとうございます。 やはり、設定では難しいのですね。。。 マクロを参考にしてやってみます。 色々とありがとうございました。

関連するQ&A

  • DataGridViewの行追加について。

    初めまして、VB初心者ですが皆様よろしくお願いいたします。 今、VB2005でDataGridViewを使用した入力システムを作成しています。 1~10行目まで入力したデータに対して、5行目に新規行を追加したいのですが。 この場合、現在入力されている5~10行目のデータを、6~11行目に退避した後 「DataGridView1.Rows.Add(DataGridView1.Focus」で5行目に新規行を追加すればいいのでしょうか? うまくいかず悩んでいます。 ご教授よろしくお願いいたします。

  • EXCEL2003でロックされたセルを含む行の削除、追加を許可したい

    EXCEL2003で、以下の表を作りました。 ・200行50列。50列うち40列は数式。リストになっている。 ・数式でない10列のみ、ロックをはずし、シートの保護をかけた。 この表で、保護したまま、以下の操作を許可したいのですが、可能でしょうか? ・ロックされたセルを含む、行の削除 ・行の追加時に、ロックされた列に数式の自動コピー  (リストになっているので、保護解除状態ではコピーされます) 数式をいじられたくないだけなので、行の追加削除は自由にさせたいのです。 EXCELのバージョンアップをしたら可能になったりしますでしょうか? ご回答、よろしくお願い致します。

  • エクセル 行追加マクロについて

    エクセル 行追加マクロについて 2007エクセルマクロ初心者です。 スケジュール表を作成、行追加マクロを作ろうとしてます。 シートの上下に表があり、上の表に行追加です。 関数式を壊したくないので、一部セルへロックをかけています。 以下の点についてご教授をお願いいたします。 行追加マクロを実行するとパスワードを要求されます。 聞かれないようにできないでしょうか。? パスワードを入力した以降は要求されませんが シートの保護解除を選択すると保護が解除されてしまいます。 パスワード記載のマクロを試したことがありますが、 表へオートシェイプが描写できなかったので断念しました。 Sub 行追加() With ActiveSheet 'シート保護解除 .Unprotect Range("A65536").End(xlUp).Offset(-8).Select ActiveCell.Resize(1, 79).Select Selection.Copy Selection.Insert Shift:=xlDown Range("A65536").End(xlUp).Offset(-8).Select ActiveCell.Resize(1, 9).Select Selection.ClearContents 'シート保護 .Protect DrawingObjects:=False, Contents:=True, Scenarios:= _ True End With End Sub

  • エクセルの参照行の挿入による追加と行の削除に対応できる関数を教えてくだ

    エクセルの参照行の挿入による追加と行の削除に対応できる関数を教えてください。 sheet1を印刷用ページ、sheet2をデータ用ページとしています。 sheet2は頻繁に追加や削除をするのですが、単純な =sheet1!A1 ですと、 sheet2に追加してもsheet1に追加されたデータが反映されない。 sheet2の行を1つでも削除するとsheet1のその行は#REF!というエラーに。 という状態です。下記内容に対応できる関数はあるでしょうか。 sheet2がこのような時 行  A あ B い C う D え sheet2Dに「お」を挿入すると sheet1がこのようになるように。 行  A あ B い C う D お E え また、B行を削除したらsheet1が 行  A あ B う C え となるように。 そして、可能ならばコピーのドラッグで複製できるようにしたいのですが・・・ 条件が色々ありますが、よろしくお願いします。

  • CSV形式で編集された項目をVBからEXCELシートへ編集し印刷

    CSV形式で編集したテキスト項目(7項目,300行)を、EXCELファイルへ編集し、印刷する方法を教えて下さい。(VBでEXCELシートへ編集し印刷したが、編集から印字までの処理時間が大きいため、帳票データをCSV形式化し、処理速度を高速化したい)簡単なサンプルがあれば助かります。 処理の概要は、以下の通り。 (1)VBで、CSV形式のテキストファイル作成後、 (2)VBからEXCELファイルを開いて (3)CSVのテキストファイルをEXCELシートへ編集 (4)VBから印刷プレビューを出し (5)印刷指示することで 全て、VBから制御する方法

  • Excel シートの保護機能について

    Excel2003を使用しています。 シートの保護機能について、教えてください。 ユーザによるセル内の入力・編集・削除の作業は許可させたいのですが、 行の追加・削除は許可させないようにしたいと思っています。 「ツール」の「保護」機能を利用すると、行の追加・削除の制御は出来るのですが、 セル内への入力・編集もできなくなってしまいました。 制御できないことはないと思うのですが、可能でしょうか? マクロで作成したExcelファイルがあり、定形の形から崩れてしまうとプログラムが おかしくなってしまう為、上記のような制御を行いたいと思っております。 ユーザには、入力・編集作業+マクロの実行のみ、行わせたいと思っています。 よろしくお願いいたします。

  • Access2000でボタンを押すと新しい行が自動的に追加される様にすることは可能ですか?

    可能ならば教えて頂きたいのですが・・・。 Access2000のテーブルであるボタンを押してマクロを実行すると、 新しい行が自動的に10行追加されるようにすることはできるのでしょうか? 追加される10行は空白行ではなく、あるフィールド(品番)には、 あらかじめ決められた10件のデータが挿入されている状態にしておき、 残りのフィールドは空白で、後から入力できるようにしたいのですが。 つたない説明ですみません。おそらくモジュールを使っての操作となる と思いますが、なにしろVB初心者なもので・・・。よろしくお願いします。

  • 【EXCEL】検索機能を追加したい

    EXCELの顧客管理表に検索機能を追加したいと思っています。 概要は以下の通りです。 ・Sheet1を顧客データ一覧、Sheet2を検索用シートとし、Sheet2の上段に検索したい 単語又は日付を入れ検索ボタンを押すと、Sheet1のリストからデータを抽出しSheet2中段以降に 表示、が理想です。 ・Sheet1の顧客データは、毎日数行ずつ追加します。 項目は「日付」「顧客名」などB1~M1まで入っています。 似た質問を調べ、↓の状態までは設定できました。 ・Sheet2のB1~M1にSheet1同様の項目を作っておき、抽出したい項目の2行目に 検索対象文字を入れる。 (例 B1の項目が日付の場合、B2に”2007/01/16”) Sheet2に作った「検索ボタン」を押すと、Sheet2の4行目 以降に検索対象文字を含むデータが抽出される。 (4行目にもSheet1同様の項目を入れています。) ちなみに、検索ボタンのマクロの内容は以下の通りです。 Private Sub 検索_Click() Worksheets("顧客入力").Range("顧客データ").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("B4:M5"), CopyToRange:=Range("B8:M1063"), Unique:=False End Sub ※顧客データ・・・Sheet1の顧客リストに定義している名前 ※顧客入力・・・Sheet1の名前 これで基本的な検索はできるようになったのですが、日付指定に関して足りない部分があります。 特定の日付指定は可能なのですが、2007/01/01~2007/01/31のような範囲の指定ができません。 また、文字列の検索で「~から始まる」検索は出来るのですが「~を含む」検索が出来ません。 マクロ初心者なのでどこをどう変えればいいのかが分からず困っています。ご教授いただければ助かります。

  • エクセルで編集不可の行の設定マクロについて

    エクセルで、行の1行目から10行目までは編集不可(カーソルが行かない)に設定するマクロは出来るでしょうか。 セルの保護の活用を試しましたが、保護にすると並べ替え機能が使えなくなるので困っています。 編集は11行目から可能とし、並べ替え機能が使えるようにしたいのです。 どなたか、よろしくお願いいたします。

  • .NET DataGridの行選択

    いつもお世話になっております。 VB.NET 2003 の標準コントロールDataGridを使用しておりますが、行選択(1行のみ・編集不可)が出来ないのですが、ご存知の方おられましたら、宜しくご教授お願いします。