• ベストアンサー

マクロの記述について

エクセルのマクロについて教えてください。 A列には氏名B列にはコードが入っておりC列からG列に数字が入ります。 C列からG列までのすべてが0の時にその行を削除したいのです。 よろしくお願いします

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

ん-? >ちなみにセルが0または空白としたときは 変更前: range("A:G").autofilter field:=i, criteria1:=0 変更後: range("A:G").autofilter field:=i, criteria1:=0, operator:=xlor, criteria2:="=" #ついでについでにと後出しダラダラいつまでも終わらないご相談ばっかりで,うんざりしています。 ってお話ししとかないと,みんないい顔でナニヤッテモ優しく教えてくれるモンだって勘違いしちゃうでしょ?

katstact
質問者

お礼

確かにおっしゃる通りですね。 回答がこちらの希望したとおりの結果でしたので 同じ方に聞くのが適切な回答が得られると思い 安易に追加してしまいました。 まず最初の回答に区切りをつけるべきですよね。 以後気をつけます。

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

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

まとめて削除してみます。 sub macro1()  dim i  activesheet.autofiltermode = false  for i = 3 to 6   range("A:G").autofilter field:=i, criteria1:=0  next i  activesheet.autofilter.range.offset(1).entirerow.delete shift:=xlshiftup  activesheet.autofiltermode = false end sub

katstact
質問者

補足

適切な回答ありがとうございました。 思い通りに処理ができました。 ちなみにセルが0または空白としたときは 記述はどのようになりますか? すみませんが教えていただけると助かります。

全文を見る
すると、全ての回答が全文表示されます。
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

マクロ例です。 対象シートタブ上で右クリック→jコードの表示→サンプルコード貼り付け→シート上でAlt+F8キー押下→sample実行 因みにデータ先頭行は見出しとしています。 Sub sample() Dim i As Long For i = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1 If Application.CountIf(Cells(i, "C").Resize(, 5), 0) = 5 Then Rows(i).Delete End If Next End Sub

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

関連するQ&A

  • Excel 2007のマクロ記述について

    Excel 2007で、B4セルからI最終行までの整数のみを小数点以下1桁にする処理をマクロで実行したいのですが、どのように記述したらよいか教えてください。 最終行とはI列にセルの値がある最後の行です。 下記の例のマクロ実行結果は、1→1.0、2→2.0となります。 (例)      列      A  B    C    D    E   F  G   H  I    J      K  行4  A1 0.9   0.9   0.9   0.9  1.2  1.2   2  2   CIRCLE  CIRCLE    5  A2 1.4   1.4   1.6   1.6   1   1  1.5  1.5  CIRCLE  CIRCLE    6  A3 0.71  0.71   0.71  0.71  1   1  1.5  1.5  CIRCLE  CIRCLE マクロ実行結果      列      A  B    C    D    E   F  G   H   I    J      K  行4  A1 0.9   0.9   0.9   0.9  1.2  1.2  2.0  2.0  CIRCLE  CIRCLE    5  A2 1.4   1.4   1.6   1.6  1.0  1.0  1.5  1.5  CIRCLE  CIRCLE    6  A3 0.71  0.71   0.71  0.71  1.0  1.0  1.5  1.5  CIRCLE  CIRCLE

  • シート間の行相違検証マクロ

    シート1のB列(B5:B38)に数10名の氏名を入力します。C列からM列までには数字を何個か入力します。例えば  A氏、C5には4、F5には2、M5には3、 B氏、E6には3、G6には4、 C氏、F7には4、H7には8、等です。 シート2の(A3:A36)にはシート1の氏名を入力します。B列からL列までにはシート1で入力した数字に対応した数字を入力します。例えば シート1、A氏、C5の4ではシート2、A氏の行のB列に2000、F5の2ではシート2のA氏の行のE列に1000、M5の3ではシート2のA氏の行のL列に1500、と入力します。ここで、シート2で入力した行が違っていないか。他の人の行に入力していないかの検証マクロの記述方を教えてください。尚、シート1とシート2の氏名の並びが同一の場合と、そうでないときの二通りを教えてください。よろしくお願いします。

  • EXCEL マクロ シート 比較

    EXCEL マクロ でシート間のデーターをシート2を基本に比較してシート3へ結果を出す 新規・削除と表示する。 シート1       シート2            シート3 氏名  コード    氏名   コード      氏名   コード A列   B列      A     B        A     B    C 山川   1001    山川   1001      1002   谷    削除 谷    1002    空     1003      1005   海    新規   空    1003    海     1005 田    1006    田     1006 まことにお忙しいところよろしくお願いいたします。

  • VBA(マクロ)について

    エクセルのマクロを使って下記のように実行を考えています。 A列のコード番号が一定ではないため、処理に困っています。 どなたかアドバイス頂けないでしょうか。 詳細についてです。A列にコード番号があり、B列に数値があります。 例えば、A列の1~3行目まで100とあり、4~5行目まで400と1~3行目と4~5行目の数値はおなじです。3行分だったり2行分だったりと不規則に下に続いていきます。 そのA列の同じコード番号全てに対して、B列の値を合計してC列に合計値を入力したいのです。 C列の合計値入力箇所は、A列の1~3行目までだとするとC列1行目に合計値がくるようにしたいのです。 ちなみに行数は10万桁ほどあります。

  • 重複した項目を削除するマクロ

    エクセルで同じID番号を持つ項目が2行あったとして、1行だけ残してもう1行は削除する、といったマクロを教えてください。 例: A列 B列 C列 D列 1 氏名  ID=150  住所  備考 2 氏名  ID=150  住所  備考 3 氏名  ID=10   住所  備考 4 氏名  ID=10   住所  備考 5 氏名  ID=10   住所  備考    ↓↓↓↓↓↓↓↓↓↓↓↓ A列 B列 C列 D列 1 氏名  ID=150  住所  備考 2 氏名  ID=10   住所  備考 という表にしたいのです。 アドバイスよろしくお願いします。

  • excelのマクロで条件による行の挿入

    列AとBがあり列Aに学校のクラス名A組、B組、C組・・・(20クラスほど)と氏名が 入るエクセルシートがあるのですが 先頭行はA組から始まり5行区切りで数え、(A組も5行のうちに入る) その5行内に次のB組が入らないように空白行を挿入したいです もし、5行以内にB組がない場合、次の5行でまたB組があるか判定しなければ氏名5つ あれば空白をいれてというのを20クラスぶん作るマクロは可能でしょうか? VBAの知識がさっぱりないので途方にくれています。 元のデータの例   マクロ実行後 列A   列B      列A   列B A組           A組   氏名1 111      氏名1 111  氏名2 222      氏名2 222 B組           空白行挿入 氏名3 333      空白行挿入 氏名4 444      B組 氏名5 555      氏名3 333 氏名6 666      氏名4 444 氏名7 777      氏名5 555 C組 氏名6 666              氏名7 777              空白行挿入              空白行挿入              空白行挿入              空白行挿入              C組  

  • Excel マクロ 特定の列のみカット&ペースト

    Excel マクロ初心者です。IF文を使用しているのですが上手くいきません。 A列が「次郎」の時、1つ上の行のB~E列をカットし次郎の行へペースト、B列が空白の行削除・A列に山田を追加する。 例 A列|B列|C列|D列|E列 花子|a|あ|か|g 太郎|c|う|き|g 次郎| | た | | 三郎|e|お|く|g マクロ後 A列|B列|C列|D列|E列 山田花子|a|あ|か|g 山田次郎|c|う|き|g 山田三郎|e|お|く|g 色々と調べて試してみたのですが知識不足の為、上手くいかず・・・全文載せていただけると、とても助かります。

  • Excelでマクロを使用した削除に関して

    マクロ初心者です。 Excelにて、以下のような表データがあるとします。     A列 B列 C列 D列 E列 … 1行      51  50  52  51    2行  50  a   b   c   d 3行  51  e   f    g   h    4行  52  i    j    k   l この表の中で、A列と1行目の値が同じになる交点となるセルの値"以外"を 削除して以下のように表示させたいのですが、 その方法がわかりません。     A列 B列 C列 D列 E列 … 1行      51  50  52  51    2行  50      b       3行  51  e          h    4行  52          k    単純な行削除・列削除ではないため、 頓挫しています。お知恵を拝借したく、よろしくおねがいします。

  • エクセルのマクロの繰り返し

    よろしくお願いします。 「A1からA5までの数値を数字の大きい順に並び替えして、 そのA1からA5のデーターをC1からC5にコピーする。 次にB列に1列挿入する。」 ここまではエクセルのマクロ機能で出来ましたが それを100回くり返すコードというか、 コードの書き方、仕方がわかりません。 このばあいどのようなコードでしょうか

  • エクセルマクロ 特定の文字列を含む行を削除

    エクセルマクロ 特定の文字列を含む行を削除 エクセルのマクロについて教えてください。 下の中から列を限定せず、すべての行でAAA、CCCのいずれかがある場合、 その行ごと、すべて削除したいのです。 時に削除したい特定の文字列が数十種類になるため、 マクロ起動時に削除したい特定の文字を記述したファイルを読み込み、それから 削除できるようにしたいのです。場合によってはそのファイルを編集し、 削除したい文字列を変更したいのです。 ご教示いただだけないでしょうか A列 B列 C列 1 AAA BBB CCC 2 BBB CCC FFF 3 DDD BBB FFF 4 AAA CCC DDD 5 GGG RRR UUU 行中にAAA、BBBがある場合、削除したい ↓ A列 B列 C列 5 GGG RRR UUU マクロを実行し、上記の結果にしたい。

プリンター通常設定出来ない
このQ&Aのポイント
  • パソコンが受け入れない問題についてガイドに従って設定しているが解決できない
  • Windows10でUSBケーブル接続しているがプリンターが正常に機能しない
  • 関連するソフト・アプリはウイルスバスターを使用しているが問題が発生している
回答を見る

専門家に質問してみよう