• 締切済み

《エクセル2000》非表示になっている行を一括選択して削除したい

表示・非表示行が混在しているシートが40強あります。 自分で作ったファイルではないので勝手がわからず、今は一行一行非表示行がないかを目で確認して、表示→削除という手順を踏んでいます。 例えば「表示行と非表示行を入れ替える」ような機能はありますか?

みんなの回答

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

シートが40もあるのであれば、いちいちコピーすれば、80にもなりますよ。 どうも直接非表示行を削除した方が、手っ取り早いとおもいますが、如何でしょうか。 下記のマクロを実行すると、全シートの非表示行を削除します。 一応、マクロの設定方法を書いておきます。 1.Alt + F11 で VBE(Visual Basic Editor)を開きます。 2.VBE のメニューから[挿入] -->[標準モジュール] を指定します。 3.モジュールウィンドウに下記コードをコピーして貼り付けます。  コードの2行目をデータの最終行を多めに指定します。(1000とか10000など) 4.Alt + Q (または、右上隅の×)でウィンドウを閉じ、シートに戻ります。 5.このマクロを保存して使用する場合は、メニューから[ツール]-->[マクロ]-->  [セキュリティ]で「セキュリティレベル」を「中」にして[OK]します。 6.実行するときは、Alt + F8 (メニューから[ツール]-->[マクロ]-->[マクロ])で  「DelHiddenRow」を指定し、[実行]ボタンを押します。 これで如何でしょうか。 Sub DelHiddenRow() Const ChkMaxRow = 1000 ' <--- 非表示をチェックする最終行を指定 Dim Rw As Long Dim N As Integer For N = 1 To Worksheets.Count   With Worksheets(N)     For Rw = ChkMaxRow To 1 Step -1       If .Rows(Rw).Hidden Then .Rows(Rw).Delete     Next Rw   End With Next N End Sub

bari_saku
質問者

お礼

こんにちは。 なるほど…手作業にした方が早いですか(^^;)了解です。 データベースソフトだと非表示レコードだけを簡単に選択できたりするので、もしかしたらエクセルでも似たようなことをできるのかもしれないと思い、お気楽に質問させていただきました。 ご回答をどうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
noname#5584
noname#5584
回答No.1

VBAが必要ですが、表示行/列のみをコピーし、別のシートに貼り付ければ、結果的に非表示行/列は削除されます。 一例ですが、Sheet1の表示行/列をSheet2に貼り付ける場合、下記の要領です。 Sub Test() With Application .Worksheets(1).UsedRange.SpecialCells(xlCellTypeVisible).Copy .Worksheets(2).Paste End With End Sub

bari_saku
質問者

補足

こんにちは。 実は当方マクロは全くの初心者なのですが、あちこちのサイトを覗いて、見よう見まねでやってみました。 おお、確かにこの方法ですと非表示行が削除されますね。 さらに重ねての質問になってしまうのですが、 1)行列幅を変えずにコピーするにはどうすればいいか 2)コピーの前にワークシートを新規に挿入し、さらにそのシートに名前をつけるには(できれば“コピーしたいシート名-1”のような似通った名前で) なにぶん素人ですので、もしかしたらトンデモナイ質問をしてしまっているのかもしれませんが、何卒ご容赦下さい。 よろしくお願い致します。

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

関連するQ&A

  • 空白行削除

    宜しくお願いします。 1枚のファイルシートに14ブロックのデータが貼り付けてあります。各ブロック行の長さは違く、ランダムに貼り付けてあります。例えば、データ 何百行の空白 データ…と繰り返されており、約3万5千行ぐらいあります。 空白行削除で多分半分近くまで上に詰められれば良いのですが、たくさんあるのでマクロで教えていただければと思います。ネットでころがってるデータ試してみたのですが(1部) ENDLESSに実行されて、出来てるのかどうかも確認はとれてません。ちなみに自分のシートに貼ってあるデータはA列からAS列まであり数字、文字混在です。また各ブロックの終わりは集計行となっており、空白セルがまじってます。宜しくお願いします。

  • ファイルを1行削除する

    ゲストブックに削除機能を付けたいのですが、やり方がわかりません。 入力された番号と一致する行を探し出して、削除キーと入力された番号が 同じだったら削除、としたいのですが、ファイルの一行を削除する方法がわかりません。 どのように行えば良いのでしょうか?

    • ベストアンサー
    • Perl
  • エクセルの行削除について

    今までは一枚ずつやって行削除を押していたんですけど、 別々のシートの行削除を同時にしたいと思っています。 同じ箇所だとCTRLでシートを選択すればいいんですけど すべてのシートが違う箇所の行なのです。

  • 秀丸で一行おきに行を削除する方法について

    秀丸で、一行おきに行を削除する方法について御教授ください。 今、手元に50万行のデータが入力されたテキストファイルがあるのですが、一行おきに行を削除したいと考えています。 たしか、正規表現を使えば出来たかと思うのですが、忘れてしまいました。 どなたか御教授いただけると幸いです。

  • EXCEL 行の非表示設定 保存するとまた表示する

    Office 2016 (ノートパソコン Windows8.1)のEXCELで、行の非表示設定を複数してから作業中は非表示になっていますが、 ファイルを保存して、再度ファイル・EXCELを開きますと、ファイル保全前に非表示にした行が設定前の状態で表示されます。  非表示するときは、 行を選択後、[右クリック]→[非表示]でたくさんの(6行から9行、15行から18行、、、)行で設定していますが、 ファイルの存前に何か設定してから保存しなければいけないのでしょうか。 手順や確認方法をご指導お願いいたします。

  • C#でエクセルみたいな重複行削除

    よくエクセルファイルである「重複行を削除」という 処理を行いたいのですが、検討もつきません。 想像ではStreamReaderを使用して、ファイルを読み出して 処理を行う、というのはわかってるのですが、 単一ファイル内の重複行を探し出して削除する、という処理が浮かびません・・・。 最初、ReadToEnd()で一気に読み出し、 新たにStreamReaderを作成して、ReadLine()で一行ずつ取り出して マッチしたらremoveする、と考えていたのですが、 そもそも一気に取り出したものにマッチするわけがなく、削除はできませんでした・・・。 何か良案がありましたら、教えてくださるとうれしいです。 どなたかご教授いただけると幸いです。

  • Excel 選択したページの一括印刷

    フォルダ内にある全てのExcelファイルの、選択したシートのみを一括印刷したいのですが、それは可能でしょうか? フォルダ内の全てのExcelファイルの全てのシートを一括印刷は出来たのですが、それの「選択したシートのみ」を一括印刷したいんです。 ファイルA の3シート(ページ)目 ファイルB の3シート(ページ)目 ファイルC の3シート(ページ)目 ・ ・ ・ という感じです。 可能でしょうか? 可能でしたら手順を教えてください! お願いします。

  • Excel で最下行のSheet1 Sheet2 ・・・の行が隠れてし

    Excel で最下行のSheet1 Sheet2 ・・・の行が隠れてしまいました。 他人から引き継いだExcelファイルを開いたところ、Sheetを表示する行を表示させることができません。うまくSheetの行が表示されている別のファイルと比べても何がどう違うかよくわかりません。 Sheetを表示させるコツがあれば教えて下さい。あるいは最下行以外に確認できる方法があれば 教えて下さい。なお、Excel2007で開いています。

  • Excelマクロの部分的削除

    エクセルの表で各行にプルダウンメニューがマクロで設定されているのですが、不要な2-3行を削除したところ、最後の1行のマクロ部分(プルダウンメニュー)だけ残って表示されてしまいました。 シート全体のマクロを削除せずに、一行の部分のみ削除する方法はありますか? 説明不足で申し訳ありませんが、教えて下さい。よろしくお願いします。

  • EXCELで行の先頭データが同じ行の削除方法について

    EXCELで次のようなことをしたいのですがどうしたら簡単にできるでしょうか?  AAA   AAA  AAA  AAA  AAA  BBB  BBB  BBB  CCC  DDD  DDD  DDD  DDD 上ようのなデータで重複している部分を削除し、  AAA  BBB  CCC  DDD としたいのですが。 今は一行々々で確認しながら削除してます。3000行程あり困ってます。 どうしたら簡単にできるでしょうか?  

専門家に質問してみよう