- ベストアンサー
行を挿入するVBAコードを教えてください
日々の予定を記録・集計しています。 A列に用事のタイトル B列に開始日 C列に開始時 D列に終了日 E列に終了時 の記載されているエクセルシートがあります。 睡眠が0時を過ぎて日を跨いでしまいますので、週別、月別に集計する際に、正確なデータがでません。 正確に集計するために、開始日B列と終了日D列が一致していない場合、 行を挿入して、もとの行は0時で終了させ、挿入行は0時開始にすることで、日別ごとに正確に集計したいです。 ※一つのタスクが2日以上にまたがることはありえないので想定しないでください VBAコードをおしえていただけないでしょうか。 よろしくお願いします
- crossinlove
- お礼率87% (118/135)
- Excel(エクセル)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは 行挿入しなくても週別、月別に集計する良い方法が有りそうなきもするのですが、 一応行挿入する方法は、 Sub test() Dim c As Long Dim i As Long c = Range("A" & Rows.Count).End(xlUp).Row Application.ScreenUpdating = False For i = c To 2 Step -1 If Range("B" & i) < Range("D" & i) Then Range("A" & i).Resize(, 5).Copy Range("A" & i).Insert xlShiftDown Range("B" & i + 1) = Range("D" & i + 1) Range("D" & i) = Range("B" & i) Range("E" & i) = #12:00:00 AM# Range("C" & i + 1) = #12:00:00 AM# End If Next Application.CutCopyMode = False Application.ScreenUpdating = True End Sub こんな感じで。
関連するQ&A
- エクセルマクロ、集計行の上に空白行挿入
エクセルデータがA、B、C、D、E列1000行まであります。 C列基準でE列を合計するマクロを作成しましたが(集計行はデータの下に挿入)、実行の結果、新たに挿入される集計行の上に空白行を1行挿入していくということを、作成したマクロに付加できるでしょうか? ご教授頂きたく、お願いします。
- ベストアンサー
- オフィス系ソフト
- Excelの行挿入で
Excelのシートにデータがつまっているのですが(これから新しく表を作るということではないということです。)、行の挿入をしたいのです。 このとき、行を選択して、右クリックで「挿入」を選べば挿入自体はできます。 しかし、 既にある表は、行が、A列とB列が結合されているのですが、 単に上記のように挿入すると、 A列B列が分かれている行が挿入されてしまいます。 新しく挿入された行のA列とB列を選択して、「セルの書式設定」の「配置」でセルを結合させてもいいのですが、 いちいちそうしなくても 挿入時点ですでに結合されているようにするにはどうすればよいですか。 (Excel2000)
- 締切済み
- オフィス系ソフト
- エクセルマクロ、空白行(セル)の挿入
データがA、B、C、D、E列100行まであります。 このうちD、E列を除き、エクセルのマクロで1行ごとに空白で10行挿入したいです。 (A、B、C、D列のデータに空白セルを10行分挿入し、下にシフトするイメージ。D、E列はそのまま。) ご教授頂きたく、お願いします。
- 締切済み
- その他(Windows)
- VBA,行列入れ替え挿入
初めまして、よろしくお願いします。 VBAで、シート A B C D E 1 9 2 8 3 7 4 5 を A B C D E 1 2 3 4 5 9 8 7 とC列(C1:C3)を5行目(B5:D5)へと行を挿入していくVBAを教えて頂きたく、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルで行挿入&コピー
エクセルにて下記のように入力してあります。 A B C D 111 111 222 111 次にC列の一行目にM001、D列の一行目にA001を入力した後(セルは2行目)に任意の行数を挿入し、さらにA,B列は一行目をコピー、C,D列は連番になるようにVBで作成するにはどうしたらいいでしょうか。 よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- VBA 行挿入
A B C D E F G 1 連番 学校名 氏名 性別 ブレザー 2 男子 女子 SIZE 数量 3 1 中学校1 氏名1 1 155A 1 4 2 中学校1 氏名2 1 150A 1 5 3 中学校1 氏名3 1 160A 2 6 4 中学校1 氏名4 1 150B 2 7 5 中学校1 氏名5 1 155B 1 とSheet1にありまして、HとI列を作り数量入れたいです。G列の数量が1以外のところは 行を挿入します。Hは分子Iは分母という意味です。 A B C D E F G H I 1 連番 学校名 氏名 性別 ブレザー ブレザー 2 男子 女子 SIZE 数量 数量 数量 3 1 中学校1 氏名1 1 155A 1 1 1 4 2 中学校1 氏名2 1 150A 1 1 1 5 3 中学校1 氏名3 1 160A 2 1 2 6 3 中学校1 氏名3 1 160A 2 2 2 7 4 中学校1 氏名4 1 150B 2 1 3 8 4 中学校1 氏名4 1 150B 2 2 3 9 4 中学校1 氏名4 1 150B 2 3 3 10 5 中学校1 氏名5 1 155B 1 1 1 1と2行目は初めから入ってるとします。VBAで入れられるのであれば入れたいですが。 連番は何番まであるかわかりません。 宜しくお願いします。
- ベストアンサー
- Excel(エクセル)
- 行の挿入で数式も自動的に挿入
C1列に=SUM(A1:B1)を入力し、オートフィルを30行目までかけました。 3行目で行の挿入をした時に 自動的にC列に数式が入力されている状態 (上の行、又は下の行のコピーを挿入) にしたいのですがどうすればよろしいでしょうか? 行をコピー → コピーしたセルの挿入 以外の方法はあるんでしょうか? よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセル関数で、ご教示下さい
例として、セルA1~A10に、1.2.3.・・・・10と番号を入れて セルB1~B10には、商品の在庫数が入力されているとします。 この時、セルC1に集計の開始番号 セルC2に集計の終了番号を入力すれば、 D1に開始番号から終了番号までのB列の合計を表示させたいのですが、 このような集計ができるD1に入れる関数はあるでしょうか。 例えば、B列の3行目から6行目までの合計をD1に表示させたい場合に C1にA列番号の3を入力、C2には6を入力すれば、D1にB3からB6の合計を 表示してくれる、といった関数です。 開始番号、終了番号は、何番~何番までと、その都度変わります。 どなたか、よろしく、お願いいたします。
- ベストアンサー
- オフィス系ソフト
- 条件にあてはまる場合、行挿入+値を移動させるマクロ
Excel2003、WindowsXPを使用しています。 説明が分かり難いところがあるかもしれませんが、よろしくお願いいたします。 1.C列に値が入っていた場合、下に行を挿入。 2.挿入した行のB列に、C列に入っていた値を移動。 3.D列に値が入っていた場合、さらにその下に行を挿入。 4.挿入した行のB列に、D列に入っていた値を移動。 5.E列に値が入っていた場合、さらにその下に行を挿入。 6.挿入した行のB列に、E列に入っていた値を移動。 というように、C-E列に値が入っていた場合、下に行を挿入し、 挿入行にその値を移動させるマクロを教えてください。 (実行前) A列 B列 C列 D列 E列 F列 ああああ AAA BBB CCC DDD 12222 うううう EEE 544 くくく FFF GGG VVV 8 すす TTT BBB 4300 (実行後) A列 B列 C列 ああああ AAA 12222 ああああ BBB 12222 ああああ CCC 12222 ああああ DDD 12222 うううう EEE 544 くくく FFF 8 くくく GGG 8 くくく VVV 8 すす TTT 4300 すす BBB 4300 上記実行後のように、マクロで出来たら…と思っています。 どうぞよろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- エクセル VBA 同じ内容のセルの行を合わせたい
売上集計表があり、A列に全商品のコードが表示されてます。 毎日の売上商品のデータを商品コード別に数量を入力して同じ内容のセルの行の位置を合わせる作業を毎日行っています。 毎日の売上データはエクセルで集計されたデータを貼り付けて行っています。これをなんとかVBAで処理したいのですが、どうしたらいいのかわかりません。 内容としてはA列に全商品の商品コードが既に入力されています。 月のはじめは、B列とC列に一日の集計データそのまま貼り付けます。 A列の商品コードと同じ商品コードの行に合うまで空白のセルを挿入していきます。 次の日は、D列とE列、その次はF列とG列と右に貼り付けしていきます。 商品コードは約3000件、毎日の集計データ数は約500件です。 どうか教えてください。 完成例) A列 B列 C列 D列 E列 F列 G列 H列 I列 商品コード 10/1分 10/2分 10/3分 10/4分・・・続く 商品コード 数量 商品コード 数量 商品コード数量 CZ1.000 CZ1.000 10 CZ1.000 20 CZ1.005 CZ1.010 15 ←セルの挿入で CZ1.010 CZ1.010 30 CZ1.020 30 下げる作業を CZ1.015 CZ1.030 10 毎日行ってます。 CZ1.020 CZ1.020 11 CZ1.020 20 CZ1.040 40 CZ1.025 CZ1.030 CZ1.030 11 CZ1.030 10 よろしくお願いします。
- ベストアンサー
- Visual Basic
お礼
動作確認できました。 Application.CutCopyModeや Application.ScreenUpdatingなど 見慣れないワードがでてきており、 勉強を続けたいと思います。 ありがとうございます。