• 締切済み

エクセル2000 非表示にした列や行のセルをいじらないようにするには?

いま、かなり大きく、複雑な表をエクセル2000で (ウィンドウズ2000)つくっています。 いろんな所の列や行を非表示にして見やすくしたの ですが、その非表示にした列や行をまたぐようにして その前後、左右の周囲のセルをドラッグし反転させ、 クリア等すると、非表示になっている列または行のセル に入れてある数式等までクリアされてしまいます。 表示されているセル(可視セル)のみいじれて、 非表示セル(不可視セル)はいじれないように 一括して簡単に設定する方法はないでしょう? 確かに、方法としてはその不可視セルだけ 保護するとかありますが、不可視セルがいろんな所に 所々あって、それらを一つ一つ保護設定すると 作業が非常に煩雑で、保護忘れもでてきそうです。 いいお知恵があれば拝借させてください。 よろしくお願いいたします。

みんなの回答

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.4

> いいお知恵があれば拝借させてください。 ということですので、VBAで処理する方法ですが、下記コードは、 「保護」に関係なく、選択範囲に「不可視セル」が含まれている場合には、 メッセージを表示し、選択を解除する方法です。 宜しかったらテストしてみてください。 ※「不可視セル」が含まれていても「シート全体」や「列単位」を選択した ときだけは、有効にしたいのであれば、コードの3行目を有効にします。 一応、コードの設定方法を書いておきます。 ・ 使用しているシートの「シート名タブ」を右クリックし、「コードの表示」を  選択します。 ・ コードウィンドウに下記コードをコピーして貼り付けます。 ・ Alt+Q でこのウィンドウを閉じ、シートに戻り、動作を確認します。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Rng As Range 'If Target.Rows.Count = 2 ^ 16 Then Exit Sub '列の選択を有効 Set Target = Application.Union(Target.Resize(1), Target.Resize(, 1)) For Each Rng In Target   If Rng.EntireRow.Hidden = True Or Rng.EntireColumn.Hidden = True Then     MsgBox "この範囲には、不可視セルが含まれています。", vbExclamation     ActiveCell.Select     Exit For   End If Next Set Target = Nothing End Sub

回答No.3

どこまでお役にたつか、わかりませんが、不可視セルにだけ、一括して、保護設定を行う方法です。 (1)[編集]-[ジャンプ]を実行 (2)[ジャンプ]ダイアログの[セル選択]をクリック (3)[選択オプション]ダイアログの[可視セル]をONにして[OK] (4)[書式]-[セル]を実行 (5)[セルの書式設定]ダイアログ-[保護]タブの[ロック]をOFFに (6)[ツール]-[保護]-[シートの保護]を実行 以上で、不可視セルだけがロ保護された状態となりますので、うっかり不可視セルの内容がクリアされるのは防げます。 ただし、「非表示にした列や行をまたぐようにしてその前後、左右の周囲のセルをドラッグし反転させ、クリア等」しようとするとエラーとなります。不可視行(列)をはさまないようにセル選択し直す必要がありますので、ちょっと面倒くさいような気もしますが....まずは、お試しください。  

noname#3361
noname#3361
回答No.2

お望みのことはおそらくできないと思います。

  • NIWAKA_0
  • ベストアンサー率28% (508/1790)
回答No.1

隠した行・列のところに、忘れないようにコメントか フキダシをつけとく位しか思いつきません。

関連するQ&A

  • エクセルでアクティブなセルの行と列を反転表示したい

    セルのかたちが正方形に近い、約100行(日付)と100列(項目)の表があります。 ひとつのセルの中には2桁(0~99)までの数字を入力し、縦横それぞれの最後尾でSUM関数により 合計値を出しています。 すべてのセルに数字を入力するわけではないので、よく間違ってとなりの項目に 数字を入力してしまうことがあります。 入力ミスを防ぐ為に、入力する際にアクティブなセルの行と列同時に反転表示する方法はありますでしょうか。(十文字のイメージ) 動作はブック全体ではなく任意のシート(Sheet1)のみで行いたいです。 エクセル2003です。 よろしくお願いします。

  • Excelで1つのセルに入れた複数行の長い文字列をセルの高さを変えずに表示したい

    こんにちは。 Excelについての質問です。 お分かりになる方がらっしゃいましたら教えていただけると幸いです。 Excelのシートに、何行かにわたる長い文字列をコピーしたものを 1つのセルに貼り付けて、全て表示させたいのです。 その時、シートの幅や高さは変えずに、 セル内で「Alt+Enter」で改行されてその高さに収まらない文字列は、 そのまま直下の空いているセルに表示させたいのですが、これは可能でしょうか。 「折り返して全体を表示する」はオフの状態です。 この設定で1行だけの文字列だと幅以上の文字列は自然に横の空白のセルに流れてくれますよね? これを、「Alt+Enter」の複数行ver.でやりたいのですが、 このようなことは可能なのでしょうか。 質問が分かりにくくて申し訳ありません。 他にも、いい方法をご存知でしたらアドバイスをお願いいたします。

  • ExcelVBAで非表示列を選択不可にしたい

    ExcelVBAにおいて、非表示にしている列のみを選択できないようにしたいのですが、 どうすればよいのでしょうか? (Excel2007,Excel2010) よく非表示列(セル)をコピーしないように、手動で「可視セル」指定することはできますが、 そうではなく、シートの保護や非表示設定をVBA内でプログラムするように、 シートの選択の可不可も、プログラム内で行いたいのですが。 シートの保護で行うと、全ての列(セル)が選択不可になってしまい、困ります。 具体的には、VBA以下のことをします。 1.特定列を非表示にする。(この時、選択不可にしたい) 2.1の列を表示にする。(この時、選択可能にしたい) よろしくお願いします。 m(_ _)m

  • 可視セルのみのコピー

    あるエクセルシートのデータで、非表示の行または列があって、それを別のシートにコピーするとき、データは可視セルのみをコピーしつつも(非表示の行・列を自動削除)、書式・列幅だけは元データを生かし貼り付けということを簡単に行う方法はあるでしょうか。「編集ージャンプ」で可視セルのみ選択しコピーまではうまくいったのですが、貼り付けのとき、値貼り付けまたは行・列どちらかの貼り付けしかできず、書式・列幅は再度貼り付けるという2度手間になってしまいます。一度にできるよい方法があったら教えて下さい。

  • 赤いセルがある行だけ取り出すことはできませんでしょ

    お世話になります。 列がQA列まで、行が5000行ほどあるファイルがあります。 ところどころのセルが赤く塗りつぶしされているのですが、 赤いセルがある行だけ取り出すことはできませんでしょうか? よろしくお願いいたします。

  • エクセルで、非表示になっている列もコピー

    エクセルで、あるシートの一部の列が非表示になっています。 フィルターしている状態で行をコピーし、他のシートに貼り付けると、 非表示になっている列のセルが貼りつきません(可視セルのみコピーされます)。 いちいち、非表示列を再表示せずに、 すべての列を貼り付けるには、どうすればよいのでしょうか。 Excel2007

  • エクセル 行の表示非表示のマクロでエラーが

    たとえば     列A  行1 2300  行2 1500  行3  500  行4  300 となっていて、ボタンを押すたびに行2~行4の表示非表示を切り替えるマクロを以下のように設定しました。   Sub ()   With Rows("2:4")   .Hidden = Not .Hidden   End With   End Sub そして、A1のセルを保護しシートを保護したところマクロにエラーが出て使えなくなりました。 解決方法はあるのでしょうか? よろしくお願いします。

  • Excelのセルの保護

    Excelで自治会の会計処理する表を作成しています。 表はフィルタを使ってサブトータルで科目別に集計出来るようにしています。 また、報告書作成時に必要のない列と行を非表示にして印刷します。 大勢の人が使うために数式、他シートの参照いているセルなどを保護し変更できないようにしたいのですが、セルの書式設定⇒保護⇒ロック してシート保護をかけるとフィルタ機能や列、行の非表示などができなくなります。 特定のセルだけ変更できないようにして、フィルタや列、行の非表示などは可能なセルの保護方法があったら教えてください。

  • 二つの行のうち、どちらかが、セルの値がゼロのとき、その列を非表示にする

    二つの行のうち、どちらかが、セルの値がゼロのとき、その列を非表示にする windows7 excelでマクロ作成中の初心者です。 以下のコードで27行目のセルの値が0のとき列を非表示にします。 Private Sub 列非表示_Click() Dim 列番号 As Long 'シートが保護されていたら保護を解除 Worksheets("最新明細").Activate If ActiveSheet.ProtectContents = True Then ActiveSheet.Unprotect End If For 列番号 = 4 To 33 If Cells(27, 列番号).Value = 0 Then Cells(27, 列番号).EntireColumn.Hidden = True End If Next 列番号 ActiveSheet.Protect End Sub ------------------------------------------------- Private Sub 列表示_Click() Dim 列番号 As Long 'シートが保護されていたら保護を解除 Worksheets("最新明細").Activate If ActiveSheet.ProtectContents = True Then ActiveSheet.Unprotect End If For 列番号 = 4 To 33 If Cells(27, 列番号).Value = 0 Then Cells(27, 列番号).EntireColumn.Hidden = False End If Next 列番号 ActiveSheet.Protect End Sub この27行と、もう一行の28行、どちらかの行が、0のときに列を非表示・表示したいのですが、出来ません。 試行錯誤してもできないのです。どうかよろしくおねがいします。 For 列番号 = 4 To 33 If Cells(27, 列番号).Value = 0 or Cells(28, 列番号).Value = 0 Then or( Cells(27, 列番号).EntireColumn.Hidden = True, Cells(27, 列番号).EntireColumn.Hidden = True) End If

  • エクセル セル値 行 非表示

    過去の回答を参考にさせていただき,私なりに頑張ったのですが,どうしてもマクロ設定が上手くいきません。朝からかれこれ12時間が経とうとしています。(涙) M列が0~150行まであるのですが,そのM列の中にあるセルが「0」を示した行を非表示にするマクロを組みたいと思っています。どなたかお知恵を拝借できませんでしょうか。 ご教授,どうぞよろしくお願いいたします。

専門家に質問してみよう