• ベストアンサー

エクセルで選択した行以外を削除する方法

エクセル2003を利用しております。 選択した行を消すのではなく、選択した行以外の行を削除したいのですが、そういった機能はありますでしょうか。 ご存じの方教えていただけますと幸いです。 よろしくお願いします。M(_ _)M

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

#3です。 それらしきものをVBAで作ってみました。 シートにコマンドボタンを1つ貼り付け。 そのクリックイベントに Private Sub CommandButton1_Click() d = Range("A65536").End(xlUp).Row For i = d To 1 Step -1 If Intersect(Worksheets("Sheet1").Range("A" & i & ":Z" & i), selection) Is Nothing Then Rows(i).EntireRow.Delete Else End If Next i End Sub ーー A列で最終行を判断しています。 利用操作 どの列でもよいからA-Z列の範囲内で残す行のセルを1列以上の範囲内で範囲指定する。 そしてボタンをクリック (安易指定した以外の行が削除される) 注意 範囲指定してないで実行するとすべてデータが消える危険性アリ。 そういうことで使いずらいが、良い方法はなさそう。

w-booking
質問者

お礼

回答ありがとうございました! VBAじたいよく分かってないんで、ちょっと無理そうです(> <) せっかく作っていただいたのにスイマセンM(_ _)M でも参考になりました!!

その他の回答 (5)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.6

Webからの注文メールから売上、出荷までの処理でしょうか? ちなみに近い内容をエクセルで行っています。 1、Web上から注文のメールが送信される。 2、エクセル(BASP21使用して)でメールデータを受信 3、VBAにて出荷データ(ヤマト運輸データ、納品書データ)に変更して物流部門へ転送 4、物流部門で納品書、送り状が印刷され出荷 一連の作業がエクセルで可能です。 VBAの知識が必要です。

  • argument
  • ベストアンサー率63% (21/33)
回答No.5

はじめまして w-booking さん 眠いですね、気がつけばもう2時なんて・・ まぁそんなことはさておき以下を回答とします。 Sub test() '行を事前に選択しているものとする(例ではしかたないので選択している) Rows("2:3").Select '使う場合は削除する(仮に2~3列を選択していた場合 Application.DisplayAlerts = False: mysheetname = ActiveSheet.Name: dummyname = "Dummy": Sheets.Add(After:=ActiveSheet).Name = dummyname: Sheets(mysheetname).Select: Selection.Copy: Sheets(dummyname).Select: Rows("1:1").Select: Selection.Insert Shift:=xlDown: Sheets(mysheetname).Select: Application.CutCopyMode = False: ActiveWindow.SelectedSheets.Delete: Sheets(dummyname).Select: Sheets(dummyname).Name = mysheetname: Application.DisplayAlerts = True End Sub 問題は列ではなく行でしたよね? アクティブシート名を保持(元シート)、ダミーシート展開、元シート選択、選択されている行コピー、ダミーシート選択、A1選択、下にシフトしながら選択されていた行貼り付け、元シート選択、コピー状態解除、元シート削除、ダミーシートを元シート名にリネーム。 で何事もなかったかのように選択されている行以外が削除されたといえるかと思います。 結局1番さんの答えはこうなるのかな? 追加処理・処理違い・補足等あればいってください。 また、仮に私の回答により解決した場合、私にポイントを絶対振らないでください。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

そういった機能はありません。 既に出ているご回答の方法か、 VBAで、シートにボタンをつくり、そのクリックイベントに 選択した行かどうか判別し、でなければ削除するプログラムをくむ。

  • hayasi456
  • ベストアンサー率40% (2402/5878)
回答No.2

なさそうです。 選択した行をコピーして別のシートに貼り付け 元のシートを削除してはいかがですか 「形式を選択して貼り付け」「列幅」も必要かもしれません。

w-booking
質問者

お礼

回答ありがとうございます。 NO1さんにもお返事させていただいたのですが、結局はその方法がベストなんですね・・。 ありがとうございました!

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

>選択した行以外の行を削除したいのですが、そういった機能はありますでしょうか。 そういった機能は?? 選択した行を別の新しいシートに貼り付けるではダメなのでしょうか。

w-booking
質問者

お礼

回答ありがとうございます。 使い方として ネットショップから注文情報をCSV形式に書き出し ↓ 不要な行の削除(ここで必要) ↓ エクセル形式で保存 ↓ 送り状発行ソフトでエクセルデータの読み込みを考えております。 上記毎日の作業なので、1手でも少ない動きで業務を行えないかと ご相談させていただきました。 しかし希望の機能はないとのことですので、結局はNO,1さんの回答が一番現実的かなと思います。 ご回答ありがとうございました!

関連するQ&A