• 締切済み

エクセルで数字を認識して、行をコピーして挿入するマクロ

エクセルのマクロでこんなことは可能でしょうか? (1)あるセルに(数字)が入ったとき    (そのセルの列は固定) (2)自動的にそのセルの「行」全体をコピーして    その数字が5なら4行、1なら0行 (入力値より-1行) (3)ひとつ下の行に「コピーしたセルの挿入」で行の追加をする 例 列 A.B.C.D.E a.b.c.d.2 "a.b.c.d.2" a.b.c.d.3 "a.b.c.d.3" "a.b.c.d.3" Eの列に2とある場合下に2行-(1行)追加コピー "a.b.c.d.2"の部分。 無理を言いますが可能であれば お詳しい方、ご教授宜しくお願い致します。

みんなの回答

  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.3

A列のセルが空欄になるまで全ての行を点検して E列のセルに数値が入っていたら、その行の下に 数値-1行コピー挿入するマクロです。 Private Sub CommandButton1_Click() Const cIdx As Integer = 5 'E列 Dim rIdx As Long Do Until rIdx + 1 > Range("A65536").End(xlUp).Row rIdx = rIdx + 1 If IsNumeric(Cells(rIdx, cIdx).Value) Then If Int(Val(Cells(rIdx, cIdx).Value)) > 1 Then Rows(rIdx).Copy Range(Rows(rIdx + 1), Rows(rIdx + Int(Cells(rIdx, cIdx).Value) - 1)).Insert Shift:=xlDown rIdx = rIdx + Int(Cells(rIdx, cIdx).Value) - 1 End If End If Loop End Sub

ka2ka2_
質問者

お礼

ありがとうございました

  • WWolf
  • ベストアンサー率26% (51/192)
回答No.2

こんにちは。 質問の意味がイマイチ理解しにくいのでエラーの事などは考慮していません。 Private Sub Worksheet_Change(ByVal Target As Range) Dim TR, TC TR = Target.Row: TC = Target.Column If TC = 5 Then TV = Target.Value Rows(TR).Select Selection.Copy Rows(TR + TV - 1).Select Selection.Insert Shift:=xlDown End If End Sub こういうことでしょうか?

  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.1

数字が例えば4.6なら4と見なして3行コピーすることにします。 Private Sub Worksheet_Change(ByVal Target As Range) If IsNumeric(Target.Value) Then If Target.Column = 5 Then If Int(Val(Target.Value)) > 1 Then Rows(Target.Row).Copy Range(Rows(Target.Row + 1), Rows(Target.Row + Int(Val(Target.Value)) - 1)).Insert Shift:=xlDown End If End If End If End Sub でいかがでしょうか。

ka2ka2_
質問者

お礼

ありがとうございます。 できれば マクロボタンより実行可能にはなりませんか?

ka2ka2_
質問者

補足

質問者です (1)あるセルに(数字)が入っている時    (そのセルの列は固定) 入ったとき=まちがい 訂正します。

関連するQ&A

  • エクセルで数字を認識して行をコピーして挿入するマクロ

    以前ご質問がありましたが少し違います。 エクセルのマクロでこんなことは可能でしょうか? (1)ある「不特定のセル」に(数字)が入ったとき    (そのセルの列は固定) (2)自動的にそのセルの「行」全体をコピーして    その数字が5なら5行、1なら1行 (3)ひとつ下の行に「コピーしたセルの挿入」で行の追   加をする 例 列 A.B.C.D.E a.b.c.d.2 "a.b.c.d.2" "a.b.c.d.2" a.b.c.d.3 Eの列に2とある場合下に2行追加コピー "a.b.c.d.2"の部分。 不特定が難しい場合は E列とか列を決めていただいてもよろしいです。 あとでVBをこちらで変更いたします。 無理を言いますが可能であれば お詳しい方、ご教授宜しくお願い致します。

  • エクセルマクロ、空白行(セル)の挿入

    データがA、B、C、D、E列100行まであります。 このうちD、E列を除き、エクセルのマクロで1行ごとに空白で10行挿入したいです。 (A、B、C、D列のデータに空白セルを10行分挿入し、下にシフトするイメージ。D、E列はそのまま。) ご教授頂きたく、お願いします。

  • 特定の列、セル内の数字を認識して行をコピー、挿入

    エクセルのマクロでこんなことは可能でしょうか? (1)あるセルに(数字)が入ったとき    (そのセルの列は固定) (2)自動的にそのセルの「行」全体をコピーして    その数字が5なら4行、1なら0行 (入力値より-1行) (3)ひとつ下の行に「コピーしたセルの挿入」で行の追加をする (4)最終行はコピーしない(合計の数字が入ってしまう為) 例 列 A.B.C.D.E 空白.文字列.文字列.1.文字列 空白.文字列.文字列.2.文字列 空白.文字列.文字列.3.文字列 空白.文字列.文字列.2.文字列 空白.文字列.文字列.8.文字列←合計の為コピーしない        ↓ 空白.文字列.文字列.1.文字列 空白.文字列.文字列.2.文字列 空白.文字列.文字列.2.文字列 空白.文字列.文字列.3.文字列 空白.文字列.文字列.3.文字列 空白.文字列.文字列.3.文字列 空白.文字列.文字列.2.文字列 空白.文字列.文字列.2.文字列 空白.文字列.文字列.8.文字列←合計の為、そのまま Cの列に3とある場合下に 【3行-(1行) = 2行】を追加コピー 空白.文字列.文字列.3.文字列 の部分。 できれば、コマンドボタンで処理したいと考えております。 お詳しい方、ご教授宜しくお願い致します。

  • エクセルで行を追加するマクロ

    いつもお世話になります。 エクセルのマクロでこんなことは可能でしょうか。 (1)ある「不特定のセル」に値が入ったとき(そのセルの列は決まっています) (2)自動的にそのセルの「行」全体をコピーし (3)ひとつ下の行に「コピーしたセルの挿入」で行の追加をする 「不特定のセル」というところでつまづいています。 お詳しい方、ご教授宜しくお願い致します。

  • エクセルのマクロ(行を挿入し連番を振る)

    ボタンを押すと以下のことを実行するマクロを作成することはできますか? A列2行目から 書類a 書類b 書類c 書類d 書類e C列2行目から 5 3 2 4 3 と入っています。C列は各書類の枚数です。 ボタンを押すと書類aと書類bの間に4行空白行が挿入され、A列とC列は増やした4行にそれぞれ書類a、5がコピーされ、B列には2列目から6列目まで1.2.3.4.5と連番が振られる。 というマクロです。 B列C列で1/5 2/5 3/5 4/5 5/5 であるという表現がしたいのです。(/は入りません) 書類が1枚の場合はB列C列共に空白で1/1とは入りません。 C列に入る書類の枚数により行が挿入されその書類の枚数分の連番が振られるようなマクロが作りたいです。 毎日何百行も手作業で挿入しコピーし連番を振る作業をしています。 決まった行数を増やすとか上の行をコピーするマクロならわかるのですが、C列の値を見て挿入する行数を判断するようなマクロができるのかわかりません。 どなたか教えて頂けないでしょうか。

  • エクセル 行を追加したら自動マクロでコピー

    A列に行を追加したら自動マクロで(1)と(2)を行いたいのですが、 どのようなマクロを作成すれば良いのでしょうか? (1)C1列~E1列を選択 (2)C1列~E1列をオートフィルで下までコピー

  • エクセルでセルに数字を入力することにより行をコピー挿入

    仕事で送り状作成用のデーターを作っています。 行に郵便番号、住所、名前等が入力されてます。この1行をコピーしたいのですが、セルに必要する数字を入力することによりコピー挿入することはできないでしょうか? 例)    A       B       C      D 1  郵便番号  住所       名前    コピー行数 2  100-0001  東京都港区・・・ 山本太郎    5 3  101-0001  東京都江東区・・ 山田花子    8 以下複数行続きます。 D列に必要なコピー行数を入力することにより、一発でコピーできる方法をご教授くださいませ。エクセルのマクロを使えばできそうなのですが、マクロはあまりわかりませんので、できるだけ詳しくお願い致します。

  • エクセル マクロでの行挿入は・・・・

    マクロを勉強中です。 特定の列の値(下の表では5列の『サブコード』です)が、 4~6 の時に、1行挿入し上の行のコピーを貼りつけ、 7~9 の時は、2行挿入して上の行をコピー貼りつけ・・・ という作業が、マクロでできますでしょうか? ご回答を、お待ちしております。 どうか、よろしくお願い致します (u_u)

  • エクセルマクロ、集計行の上に空白行挿入

    エクセルデータがA、B、C、D、E列1000行まであります。 C列基準でE列を合計するマクロを作成しましたが(集計行はデータの下に挿入)、実行の結果、新たに挿入される集計行の上に空白行を1行挿入していくということを、作成したマクロに付加できるでしょうか? ご教授頂きたく、お願いします。

  • 行を挿入するマクロ

    エクセルマクロ(VBA)で    A 1  B 2  C 2  D 1 上記の場合、数字の数だけ行を挿入したいのですが、うまく出来ません。 Aの下に1行。Bの下に2行。Cの下に2行。Dの下に1行という感じです。 教えていただければありがたいです。よろしくお願いいたします。

専門家に質問してみよう