• ベストアンサー

エクセルマクロ 2行とびでAからCを削除

毎月の150人分の給与データをエクセルにする必要があります。 csvデータを加工の途中で一名分のデータが3行になります。 その3行になった時点でそれぞれ各個人のデータの2行目に あたる部分のAからCを削除したいのですが、 例えば A2-C2, A5-C5, A8-C8, A11-C11 ........ A449-C449 を一括で削除する。 マクロでそういった記録は可能でしょうか?

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 横からお邪魔します。 >D2-H2,D5-H5,D8-H8などのもともとA-CのとなりにあったセルデータをれぞれのセルA-Dに500人分動かすのが最終目標ですが、 >一括で3行飛びで移動させるための・・・ 結局2・5・8・・・行目のA~C列データを削除してその行の残りのデータを左詰めにすれば良いのでしょうか? そうであれば↓のコードを試してみてください。 Sub Sample1() Dim i As Long Application.ScreenUpdating = False For i = 2 To 501 Step 3 Cells(i, "A").Resize(, 3).Delete shift:=xlToLeft Next i Application.ScreenUpdating = True End Sub こんな感じをご希望だったのでしょうかね?m(_ _)m

Moonbar
質問者

お礼

私のつたない質問をばっちり理解してくれてありがとうございました。求めていた回答です。大変ありがとうございました。VBAはまだ本当の初心者ですがこれからももっと勉強したいと思います。改めてありがとうございました。

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

その他の回答 (2)

回答No.2

単純に指定の場所を削除するだけでなく、もっと複雑な操作があるということなので、 考え方としては、一件分の操作を記録して、それを繰り返すことにより 500件程度の処理を行いたいということでしょうか? >一括で3行飛びで移動させるためのvbaの記録は可能でしょうか? ここの意味がちょっと理解しがたい部分ですが、 自分勝手に解釈すると、マクロを記録してそれを繰り返しても 同じ場所を操作するだけで、次の2件目以降の処理ができない。 ということかな? そうだとすると、ポイントは2つ 1. マクロの記録をする場合には、「相対参照で記録」をオンにして行う。 2. マクロの記録をする場合のカーソル位置に注意。記録前に1件目の先頭にカーソルを置き  記録を開始して、全ての操作後、2件目の先頭にカーソルを移動させて、記録を終了する。 自動的に繰り返すためには、記録したマクロを For~Next 等を使って 500回ループさせるなどの修正をする必要があります。 こんなところでしょうか。 ちなみに、私は Excel 2013 で確認しています。 的外れな回答でしたら、ご容赦ください。

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

>マクロでそういった記録は可能でしょうか? 記録? csvファイルでできるか不明ですが、 excelファイルを前提で書けば 私だったら、次のようなプログラムを VBA で書きます。 --- sub a() for i = 2 to 500 step 3 worksheets("sheet1").cells(i,1).value="" worksheets("sheet1").cells(i,2).value="" worksheets("sheet1").cells(i,3).value="" next end sub --- これは、指定の場所を空欄にするだけです。 実際に使用する場合は、事前にテストしてください。

Moonbar
質問者

お礼

ご教授ありがとうございます。csvデータは最初にエクセルに変換してからの作業ですから、教えていただいたvbaで確かに指定のセルデータは空欄になりますね。その後D2-H2,D5-H5,D8-H8などのもともとA-CのとなりにあったセルデータをれぞれのセルA-Dに500人分動かすのが最終目標ですが、一括で3行飛びで移動させるためのvbaの記録は可能でしょうか?最初の説明が不足ですみません、

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

関連するQ&A

  • マクロで、0のデーターの行を削除

    下記のような表があるのです(毎月のため苦労して消してます)が、データーの合計欄(セル)が0の行を削除するマクロはどうしたらよいのですか?   A   B    C  コード  合計  内容 1 001   0    0     この行を削除 2 003   5    2・・・  この行は残す 3 004   9    4・・・  この業は残す 4 010   0    0     この行は削除

  • Excel2000 マクロで行を削除したいのですが

    みなさん、こんにちは。今、社員の給与データをもとにExcel2000 で ある集計をとるマクロを組んでいて、下記のような「給与額が0円の データのみ削除する」マクロを組みました。 Sub データ削除() Sheets("Sheet1").Select Range("A1").Select Dim 行 As Long For 行 = 6226 To 2 Step -1 With Cells(行, 7) If .Value > 0 Then Exit For If .Value = 0 Then Rows(行).Delete End With Next End Sub このマクロで正しく動いているのですが、 For 行 = 6226 To 2 Step -1 の構文の 6226 が問題で、これは 6226行目から上に向かって行を削除してい きます。 対象データの量が毎回違うので、データ量がマクロに指定されている行数より 多いと正しく動かないと思いますし、少なければ効率が悪くなるのではと思い ます。 そこで、「データの一番下のセルから削除を始める」設定にしたいのですが、 どうしたらよいでしょうか? ちなみに、データは給与額をキーに降順に並んでいて下の行から削除していく ようになっています。

  • フィルタで検索した行をマクロで削除する時のコード。

    フィルタで検索した行を一括して削除するマクロを作りました。 記録して加工したマクロで今のところ動くのですが、 理解不能の箇所があるので教えてください。 下記マクロはC列の空白行をフィルターで選択して、表示された行を削除するマクロです。(データは2行目から始まっていて、フィルターは1行目に行います。また、行は全て連続しています。) また、コメントを各コードにつけています。 ここで、コメント内の(1)で示した箇所は2行目を選ぶことになっているのですが、何故これで良いのでしょう?2行目のデータがフィルターにより隠れることもあるのですが、このコードできちんと動きます。 可視セルしか削除しないのなら、分かるのですが、 そのようなコードも無いようですし・・・ なぜこのコードで動くのか教えてください。 Rows("1:1").Select  '1行目を選ぶ Selection.AutoFilter  'オートフィルター Range("C1").Select   'C1を選ぶ Selection.AutoFilter Field:=3, Criteria1:="=" '空白行を探す。Field3は不明です Rows("2:2").Select  '(1) 2行目を選択 Range(Selection, Selection.End(xlDown)).Select '2行目から連続した最後の行までを選択 Selection.Delete Shift:=xlUp  '選んだところをDelして上に詰める。 Range("C1").Select  'C1を選ぶ Selection.AutoFilter Field:=3  'フィルタ解除 基本的なことかもしれませんが、ご教示頂ければ幸いです。 よろしくお願いします。

  • エクセルマクロでの行削除の方法について

    エクセルマクロを使用しての行削除の方法についてお伺いします。 現在業務でエクセルに画像内の文字データを入力しています。 入力データは列ごとに半角全角のきまりがあり、 データが入力された行列以外はすべて削除しそれをCSVで保存という流れになっているのですが、 今のところ関数を入れて半角全角チェックをし、それが済んだあとに、 実際のデータ部分以外の箇所をすべて削除し保存しています。 調べたら半角全角はvbNarrowとvbWideという関数があると知り、 列については、特定位置から始まるのでマクロの記録で対応できています(列項目は予め数が決まっていますので)。 ただ、行については画像にどれだけデータがあるかで開始位置が変わってきます。 ***以下は試したマクロ記録です。*** Rows("9:9").Select→何も知らずに「"9:9"」の所で"開始位置の変数:開始位置の変数"としエラーで迷ってます。 Range(Selection, Selection.End(xlDown)).Select Selection.Delete Shift:=xlUp Columns("F:F").Select Range(Selection, Selection.End(xlToRight)).Select Selection.Delete Shift:=xlToLeft 不特定の行から最終行までを選択削除する方法をご存じの方がいましたらご教授お願いいたします。 上記のマクロ使用環境はExcel2003です。

  • 行を削除するマクロ

    以下のような、行を削除するマクロがあります。 Workbooks("123.csv").Activate Rows("5:10").Select Selection.Delete Shift:=xlUp しかし、123.csvを開いていない場合にはエラーが出てしまいます。 そこで、このようにしました。 On Error Resume Next Workbooks("123.csv").Activate Rows("5:10").Select Selection.Delete Shift:=xlUp しかし、エラーが出ない代わりに、アクティブなブックの行が削除されてしまいます。 123.csvが開かれている場合には、行を削除し、 開かれていない場合には、何もせずエラーも出さないようにするにはど のようにすればいいでしょうか。 よろしくお願いします。

  • 【マクロ等】4行ごとに行を消したいのですが…

    いつもお世話になっております。 最近Excelで作業をすることが多いのですが相手の会社より頂いたデーターがテンプレートの違い上読み込むと4行ごとにデータが表示されます。 (参考図) ■A B C D E F (1)100 (2) (3) (4) (5)200 (6) (7) (8) (9) (10)1000 … と言った感じで4行の空欄が入ってしまいます。 いつもこの4行を行の削除でマウスを右クリックして削除しているのですがデーター行が2000とかを超えると血の気が引きます。。。 どうにか一括で間4行を削除することはできないでしょうか? 必ずデータはA1からはじまり4行ごとに間が空きA5,A10…と数値が入る形です。 よろしくお願いします。

  • Excelで、任意の言葉で始まる行のみを、行ごと一括で削除する方法を教

    Excelで、任意の言葉で始まる行のみを、行ごと一括で削除する方法を教えて下さい! 頭から湯気が出そうです... 例えば、下記の場合 A... B... C... B... A... C... A... B... ↓このようにBで始まる行のみ一括で削除したいです A... C... A... C... A... マクロでも関数でも良いので、なるべく簡単な方法を教えてくださいませ よろしくお願い致します

  • 重複行削除のマクロ

    重複行を削除するマクロを作っていますが、うまくいきません。 2行目にタイトルが入っていて、3行目以降が必要なデータになります。 この中でA列が一致しているデータ行を削除したいと考えており、 重複データが削除された後、タイトル行がなぜか一番下の行にはりついてしまいます。 どなたか詳しい方助けてください!!!よろしくお願いします。 ちなみに以下が現在使用しているVBAコードです。 =============================================================== Sub GoodRemoveDuplicates() 'A列にデータが入力されており、そのデータを並べ替えた後、 '重複するデータが含まれている行を削除するマクロ Worksheets("貼り付け用用マクロ").Range("A1").Sort _ key1:=Worksheets("貼り付け用用マクロ").Range("A1") Set currentCell = Worksheets("貼り付け用用マクロ").Range("A1") Do While Not IsEmpty(currentCell) Set nextCell = currentCell.Offset(1, 0) If nextCell.Value = currentCell.Value Then currentCell.EntireRow.Delete End If Set currentCell = nextCell Loop End Sub ===============================================================

  • エクセルマクロで、空白行の一つ下の行を削除したい

    下記のようなデータがあるとき、空白行の一つしたの町名を一括で削除するには、どのようなマクロがあるでしょうか。 一定の行数なら私にもわかるのですが…、どなたか教えていただけないでしょうか。 町名   男  女  計 青山    86  183  269 →これが下の四つの町の小計になります。 ○○町  25  43  68 ××町  11  45  56 ▽▽▽  30  55  85 ◆◆◆  20  40  60                  →空白行 北山町   41  100 90 →これが下の二つの町の小計になります。 △△町  11  45  56 ■■■  30  55  85 このような表が、8000行あります。必ず空白行の下の行が小計になります。 空白行の一つ下の行、「青山」と「北山」の行を、マクロを使って一度に削除できるでしょうか?

  • Excelマクロで不要な行を繰り返し処理で削除する

    下記の図表【事前】のA列に時間(シリアル値)が入力されていますが、 これをマクロを使って不要な時間帯のデータを行ごと削除したいです。 それを実行するためのマクロをご教示頂けますでしょうか? 削除対象の条件 ・9:00:00~18:00:00以外の夜間や早朝の時間帯は削除する。 その他 ・データが入力されている行数分繰り返し処理 ・秒数、分数は全て0 ・列は3列(B、C列は任意) ・Excelのバージョンは2007 【事前】   A                        B      C 1 yyyy/mm/dd 01:00:00 ※削除対象 2 yyyy/mm/dd 23:00:00 ※削除対象 3 yyyy/mm/dd 09:00:00 4 yyyy/mm/dd 15:00:00 5 yyyy/mm/dd 17:00:00 6 yyyy/mm/dd 19:00:00 ※削除対象 7 yyyy/mm/dd 04:00:00 ※削除対象 【事後】   A                        B      C 1 yyyy/mm/dd 09:00:00 2 yyyy/mm/dd 15:00:00 3 yyyy/mm/dd 17:00:00

休日の昼飯代はどれくらい?
このQ&Aのポイント
  • 休日の昼飯代は、一般的には300〜500円程度です。
  • 休日の昼飯代には個人の好みや場所によって差がありますが、一般的には300〜500円程度が一般的です。
  • 休日の昼飯代は、食事場所や選ぶメニューにもよりますが、普通のランチメニューであれば300〜500円程度が一般的です。
回答を見る