- ベストアンサー
複数のbookから特定のセル(行)を削除する
- 複数のbookから特定のセル(行)を削除する方法について教えてください。
- 社内販売の取りまとめをしており、誤送付したbookに余分な行が挿入されているため注文項目がずれてしまい正しい集計ができません。
- 一度に複数のbookから特定の行を削除する方法を知りたいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
「複数のブックを纏めて行削除」なんてことは,マクロを使っても出来ません。 折角マクロを使ってるのですから,マクロを使って1つ1つブックを開いては修正していく作業を自動でやらせるだけですね。 #もちろんその過程の中で,たとえば「実施済みのブックを誤ってマクロを走らせてしまい,ホントは要り用な範囲も削ってしまった」みたいな間違いも起こり得るワケですが。 sub macro1() dim myPath as string dim myFile as string mypath = "c:\test\" ’注1 mkdir mypath & "DONE\" myfile = dir(mypath & "*.xls*") ’注2 do until myfile = "" workbooks.open filename:=mypath & myfile activeworkbook.worksheets(1).rows(1).delete shift:=xlshiftup ’注3 activeworkbook.saveas filename:=mypath & "DONE\" & myfile activeworkbook.close false myfile = dir() loop end sub 「実際に動くマクロ」を誰か代わりに書いて教えてくれってご相談の場合,次のような「具体的な実際のエクセルの姿や状況」について情報提供しないとダメです 注1:具体的にブックが保存してあるフォルダのフルパス 注2:具体的なブック名のサンプル,ブック名のルール,正しい拡張子 注3:実際に処理したい具体的なシート名,または対象シートを特定できる情報,具体的に処理したいセル範囲
その他の回答 (3)
- MackyNo1
- ベストアンサー率53% (1521/2850)
>一度に複数のbookから特定の行を削除するような方法はあるでしょうか? 基本的にマクロを使用することになりますが、マクロ処理では元に戻すことができないので、十分な検証のもとで実行しないとデータを消失するなど重大なエラーが発生する可能性がありますので、初心者にはお勧めできません。 >集計用book中のボタン押下で注文書から必要項目を抽出してくれる仕組みになっています。 必要項目を抽出するマクロがあるなら、こちらのコード(対象データの行位置)を修正したほうが、リスクが少なくお勧めの対応です。
補足
>データを消失するなど重大なエラーが発生する可能性があり そうですか。 確かにデータ消失はリスクが高すぎますね・・・ >こちらのコード(対象データの行位置)を修正・・・ 私もそれをチラと考えてみたのですが、集計表は外部の会社に作っていただいたものでとても恐ろしくてさわれません。 代替え案考えていただきありがとうございました。
- qualheart
- ベストアンサー率41% (1451/3486)
それは大変ですね。 フォルダに入っているエクセルファイルに対して同一の行を削除するマクロをVBで組めばできますよ。 その程度のVBであれば30分もあれば作れると思いますけど。 ちなみに削除したいのは何シートの何番目の行でしょうか? それさえ分かれば作れます。 もちろん、ここではソースコードを教えることしかできないので、ご質問者様の方でソースコードをエクセルのVBAで登録してファイルを作ってもらう必要がありますけどね。
補足
回答ありがとうございます。 削除したいのは 1シート目の1行目、2行目です。 ソースコードを教えていただけるのでしょうか? 助けていただけると幸いです。
- aokii
- ベストアンサー率23% (5210/22062)
一度に複数のbookから特定の行を削除するような方法は難しいので、マウス操作の記録・再生ソフトを使って、一度に複数のbookから特定の行を削除した新しいbookを自動的に作ることをお勧めします。
補足
マウスの操作・再生ソフト探してみたいと思います。 削除ができるということは操作によってはペーストなどもできるという事でしょうか。 ありがとうございました。
お礼
丁寧な注釈つきの回答、ありがとうございます。 質問する前にもう少し勉強が必要なようですね。 具体的なソースも示していただきありがとうございました。