dポイントプレゼントキャンペーン実施中!

社内販売の取りまとめをしています。

全社員に同じ注文書を送付し注文を受け付けました。
ところが送付した注文書が間違っており、正しいファイルにはないはずの行が挿入されていることがわかりました。

集計は別のbookにマクロが組んであり、それを利用します。
集計用book中のボタン押下で注文書から必要項目を抽出してくれる仕組みになっています。

誤送付したbook(注文書)に余分な行が挿入されているため注文項目がずれてしまい正しい集計ができません。

注文書は200枚以上あり、一つ一つのbookを開いて不要な行を削除していくのは気の遠くなるような作業になってしまいます。
一度に複数のbookから特定の行を削除するような方法はあるでしょうか?

よろしくお願いします。

A 回答 (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:実際に処理したい具体的なシート名,または対象シートを特定できる情報,具体的に処理したいセル範囲
    • good
    • 0
この回答へのお礼

丁寧な注釈つきの回答、ありがとうございます。

質問する前にもう少し勉強が必要なようですね。

具体的なソースも示していただきありがとうございました。

お礼日時:2014/10/29 19:28

>一度に複数のbookから特定の行を削除するような方法はあるでしょうか?



基本的にマクロを使用することになりますが、マクロ処理では元に戻すことができないので、十分な検証のもとで実行しないとデータを消失するなど重大なエラーが発生する可能性がありますので、初心者にはお勧めできません。

>集計用book中のボタン押下で注文書から必要項目を抽出してくれる仕組みになっています。

必要項目を抽出するマクロがあるなら、こちらのコード(対象データの行位置)を修正したほうが、リスクが少なくお勧めの対応です。

この回答への補足

>データを消失するなど重大なエラーが発生する可能性があり
そうですか。
確かにデータ消失はリスクが高すぎますね・・・

>こちらのコード(対象データの行位置)を修正・・・
私もそれをチラと考えてみたのですが、集計表は外部の会社に作っていただいたものでとても恐ろしくてさわれません。

代替え案考えていただきありがとうございました。

補足日時:2014/10/29 15:47
    • good
    • 1

それは大変ですね。



フォルダに入っているエクセルファイルに対して同一の行を削除するマクロをVBで組めばできますよ。
その程度のVBであれば30分もあれば作れると思いますけど。
ちなみに削除したいのは何シートの何番目の行でしょうか?

それさえ分かれば作れます。
もちろん、ここではソースコードを教えることしかできないので、ご質問者様の方でソースコードをエクセルのVBAで登録してファイルを作ってもらう必要がありますけどね。

この回答への補足

回答ありがとうございます。

削除したいのは
1シート目の1行目、2行目です。

ソースコードを教えていただけるのでしょうか?
助けていただけると幸いです。

補足日時:2014/10/29 15:41
    • good
    • 0

一度に複数のbookから特定の行を削除するような方法は難しいので、マウス操作の記録・再生ソフトを使って、一度に複数のbookから特定の行を削除した新しいbookを自動的に作ることをお勧めします。

この回答への補足

マウスの操作・再生ソフト探してみたいと思います。
削除ができるということは操作によってはペーストなどもできるという事でしょうか。

ありがとうございました。

補足日時:2014/10/29 15:49
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています