- ベストアンサー
条件に一致する行を削除するマクロの書き方
お世話になります。 EXCELのシート(添付参照ください)で受発注管理をしてます。 「No.」は(月2桁)(日2桁)(連番=01~無限。これまでの最大は3桁)+アルファベット(1文字以上) で自動的に振られます。 ここから別ファイルをつくりたいのですが。 0)シートを新しいブックに「コピー」 1)「出荷数」に何らかの数字がある行を削除 2)「メモ」に特定の言葉(この表では”倉庫”)がある行を削除 3)作業日(この表では0912XXa=9月12日)から1か月以前のデータの行を削除 (つまり8月13日以降のデータを残す) 4)表全体を選択して「No.」をキーにして並び替え 5)セルA1を選択 6)名前を付けて保存(形式は 「(特定の言葉)+(西暦年4桁)(月2桁)(日2桁)+データベース.xls) これを一連のマクロで処理したいと考えております。 0、1、2、4、5、6は何とかなりそうなのですが、3)が私の技量ではできません。 1か月前ということは上に書きました通り、8/13~のみ残すということなのですが、 アタマに0813が付くデータはありません。この場合は0828~を残します。 2か月前でしたら同じく0713XXxのデータはありませんので、 0714~以降を残すことになります。 これはどうやって記述すればうまくいくでしょうか? ご教示いただければ幸いです。 ※すみません。再掲です。 「何とかなりそう」と書いたのですが、ほかの部分も怪しいです。 可能でしたら0~6すべて書いていただけると喜びます。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- 【マクロ】データが1つもない行を削除する
添付した画像のようなファイルがあります。 この表の中で、データが一つもない行は削除して、上詰めにするマクロを実行したいです。 また、このシートの表は11行で終わっていますが、 他のシートは25行目で終わっていたりとバラバラです。 すべてのシートでこの処理を行いたいと思っていますので、 他のシートで処理を行ってもエラーのでないマクロを教えていただけたら幸いです。 ちなみに、 ・各シートに表はひとつづつ。 ・各シートの表の開始セルは同じ。 ・全シートに対して一気に処理を行いたい。←指定した処理をすべてのシートで行うマクロは作成済なので大丈夫です。
- ベストアンサー
- Excel(エクセル)
- 行削除のマクロ
B列~F列にデータが入っていてB列の最終行の下セルを選択しクリップボードのデータを貼り付けた後、貼り付けたデータの最初の3行を削除するマクロを作っています。 Sub Macro1() ''Worksheets("Sheet1").Activate ' addrw = Range("b65536").End(xlUp).Offset(1).Row Cells(addrw, 2).PasteSpecial end sub これでB列の最終行の下にデータを貼り付けることまで出来たのですが貼り付けた最初の3行の削除の仕方がわかりません。 いい方法があれば教えていただけないでしょうか。 例えばB列の10行目まで既に入力されていた場合、11行目からクリップボードのデータを貼り付け(ここまでは上のプログラムで出来ました。)、11行目から13行目を削除したいのですがどうしたらいいでしょうか?
- ベストアンサー
- オフィス系ソフト
- マクロによる条件での行の入力と削除
初めまして、よろしくお願いします。 次のような二枚のシートがあります シート1 A B C 1 2 ・ 99 100 23 101 25 102 31 103 34 104 43 105 44 106 49 107 50 108 55 109 60 110 111 ・ ・ シート2 A B C 1 2 ・ 99 100 23 1 2 3 101 25 4 5 6 102 31 7 8 9 103 34 0 1 2 104 43 3 4 5 105 44 6 7 8 106 49 9 0 1 107 50 2 3 4 108 55 5 6 7 109 60 8 9 0 110 111 ・ ・ シート1とシート2のA列に入っている数字が通し番号です。シート2では加えてその通し番号のデーター数字がB列、C列、D列に入っています。 のこシート1の通し番号31が削除、代わりに通し番5番と51番を追加し、 シート1 A B C 1 2 ・ 99 100 5 101 23 102 25 103 34 104 43 105 44 106 49 107 50 108 51 109 55 110 60 111 112 ・ ・ マクロを実行すると シート2 A B C 1 2 ・ 99 100 5 101 23 1 2 3 102 25 4 5 6 103 34 0 1 2 104 43 3 4 5 105 44 6 7 8 106 49 9 0 1 107 50 2 3 4 108 51 109 55 5 6 7 110 60 8 9 0 111 112 ・ ・ シート2がこように通し番号31が入っていた行番102行が削除され、新たに通し番5番が行番100に、51番が行番108に挿入追加されるマクロを教えていただきたく、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- セルの値が同じ行を条件に従って行削除するマクロ
A~E列までデータがあり 行数は約30,000行あります。 A列は半角英数字と-で桁数は11桁又は14桁です。 数字のみもあれば数字と英字の組み合わせもあります。 (英字はどこの桁にあるか何個あるかは不規則です) 例 ABCD123456789X 124345678901234 55555-55555 ABC12345DEF678 E列には半角の 1 か 2 しかありません。 A列が同じ値の行を検出して重複している行は1行だけ残して 後は行削除をしたいです。 行削除はE列の値によって判定したいです。 重複行は1つの値に対して何行あるか不明です。 30,000行のうち、重複行を削除すると10,000行くらいになる予定です。 (1)重複行にてE列の値が1だけの場合 どれでもいいので1行残して残りは行削除 (2)重複行にてE列の値が2だけの場合 どれでもいいので1行残して残りは行削除 (3)重複行にてE列の値が1も2もある場合 E列の値が2の行をどれでもいいので1行残して残りは削除 例 (1) 1234567890XXXX-1 1234567890XXXX-1 1234567890XXXX-1 ↓ 1234567890XXXX-1 (2) 123ABCDE901234-2 123ABCDE901234-2 ↓ 123ABCDE901234-2 (3) 12345678901234-1 12345678901234-2 ↓ 12345678901234-2 ABC45678901234-1 ABC45678901234-2 ABC45678901234-1 ABC45678901234-2 ↓ ABC45678901234-2 手作業では5時間かかりましたがミスだらけです。 まだ数ファイル残っており手作業では厳しいのでマクロを 作成したいのですが、どう記述していのかまったく検討が付きません。 どうかよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- マクロで、0のデーターの行を削除
下記のような表があるのです(毎月のため苦労して消してます)が、データーの合計欄(セル)が0の行を削除するマクロはどうしたらよいのですか? A B C コード 合計 内容 1 001 0 0 この行を削除 2 003 5 2・・・ この行は残す 3 004 9 4・・・ この業は残す 4 010 0 0 この行は削除
- ベストアンサー
- オフィス系ソフト
- VBA 条件の一致する行の特定のセルの削除について
VBA初心者です。よろしくお願いします。 <sheet1> A B C D E 1 1 1211 佐藤 10 100 2 2 1344 山田 25 150 3 3 1522 田中 5 80 4 4 1655 高橋 35 200 ・ ・ 100 100 3682 小林 40 300 <sheet2> A B 1 1344 2 この様な表があったとします。(見辛くてすみません) "sheet2"A1セルに入力した内容と同じ内容を"sheet1"のB列から検索し、その行のB~Eのセルを削除するにはどのようにしたら良いでしょうか? 例えば"sheet2で"「1344」と入力した場合、"sheet1"の「1344」のある2行目のB~Eのセルを削除するといった感じです。 削除後の空白は詰める必要はなく、マクロを記録させるボタンは"sheet2"に貼り付けます。 色々調べましたがどうにも分からない為質問させていただきます。 よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- excelで、ある条件に対し正なら行を削除したい
Excelを用いてグラフを作成したいと思っています。 しかし、データ量が多く、グラフが読みにくくなるため、 間引きをおこなうことにしました。 間引く際に一つ一つけしていくととても時間がかかるので マクロを作りたいと思ってます。 しかしはじめてマクロを作るため、調べてもよくわからなかったので 教えていただきたく思います。 データは一秒感覚で測定したデータが三万行ほどになっています。 それを三十秒感覚に間引いてグラフにしたいと思っています。 シートにはこのように記述しています 時間 |測定結果 12:34:56|○○ 12:34:57|○○ : 時間の欄の下二桁が00と30のとき以外の行を削除したいです。 一部分の判断が難しいようなら、一番左に列を挿入し、 00、01、02と秒数のとこだけ書き出し、それを用いて判断するのもいいかなと 思っています。 マクロに詳しい方いましたら、どのようにして組んだらいいか教えてください。 お願い致します。
- ベストアンサー
- オフィス系ソフト
- 在庫表シートから、売れた商品の「整理番号」を含む行を削除したいのですが
マクロで”在庫管理”をしようとしています。 ”在庫表”シートのI列の2行目(セル;I2)に「整理番号」のタイトル、データは3行目から下方向に4桁の数値で並べて200行程度あります。(行方向には、仕入日、商品名、仕入先、金額などのデータが入れてあります。) 「売上入力シート」に、売れた「整理番号」をセル:D3から下方向に数量分入力し、それを売上表に転記(ここは出来ました)後、在庫表から売れた「整理番号」を含む行を削除したいのですが、これの”マクロコード”ができず、悩んでおります。 ヒントでも教えていただければ、助かります。 マクロの勉強を始めて数ヶ月の初心者ですが、よろしくお願いします。
- ベストアンサー
- Windows Me
- Excel 空白行を上に詰めるマクロ
関数を使用して、sheet1からsheet2に必要なデータを抜き取りました。 sheet2のセルには関数が入っています。 sheet2の抽出データには1行単位(まれに2~3行続けて)空白が発生します。 この行を削除し、かつ上に詰めて表示をしたいのですが、下記の条件で実行可能でしょうか? (例) sheet1 ⇒ sheet2 A B C A B C 1 あ い う 1 あ い か 2 か 2 (空白行) 3 き く け 3 き く し 4 こ さ し 4 (空白行) ●2行目、4行目を削除し、且つ5行目以降に入力されている関数は削除したくない ●空白行削除のマクロは自動?(sheet1のデータを変更したら)で実行できるようにしたい よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 5月から20代の女性が入社して私たちのA課に配属されました。その女性が40代の社長の娘とその娘と仲良しでA課所属女性の2人から目の敵にされていて、少しずつジャブをもらって精神的にボロボロのようです。
- 具体的には電話も他の女性がワンコールもしないうちにほぼ取って彼女も取ろうとアクションはしてるのですがなかなか取れず、あの小娘は電話に全く出ないみたいに言われたり、全体には挨拶しているのですが、自分の目の前に来て挨拶をしないと納得いかないようでそれだけで挨拶も出来ないとか流されたり、自分は遠目で見ても年中スマホをいじっていて勤務中に私の所にも仕事と関係のないLINEが来るのに
- 彼女が休憩時間に入ってからデスクでスマホを確認するだけで厳しく指導されていたり、デスクでは飲食はするなと言われていますが、娘のごみ箱を見るとお菓子のカスだらけです。さらにこの間は来客が来て麦茶の準備をして麦茶を冷蔵庫に片付けてからお客様のところに持っていったら時間をかけずにまずは先に出すと注意され、後日、それを実践していたら出しに行っている間に給湯室で待ち伏せされて片付けをしっかりするように怒られていて「片づけるために戻ってきた」と言ったら「新人のくせに口答えする小娘」とまた会社中に流していました。
お礼
再度の回答ありがとうございます。 実際のデータに当てはめて自分なりに書き換えてみましたが、 1か所だけエラーが出て進みません。 ((2)の部分で、実行時エラー1004 RangeクラスのAutoFilterメソッドが失敗) ここから先は自分で頑張ってみようと思います。 お手数お掛けしました。
補足
おっしゃる通り、出していない情報があります (具体的に言うと、もっとデータ列がありまして、 そこが空欄だったりします)。 こういう場で質問する自分も悪いのですが、 機密に該当するものもありますので…。