• ベストアンサー

エクセルで行挿入&コピー

matsu_junの回答

  • ベストアンサー
  • matsu_jun
  • ベストアンサー率55% (146/265)
回答No.4

A~F列を直上の値のコピー、G、H列を連番にすると以下のようになります。 貼り直してください。 なお、挿入したくない場合は、InputBoxが表示された時点でキャンセルをクリックするか キーボードのEscキーを押していただければキャンセルします。 なお、私No3の回答で少しミスをしてしまってます。No3の回答では、InputBoxでキャンセルをクリックすると次回より働かなくなってしまいます。下のソースはその点修正済みです。 Private Sub Worksheet_Change(ByVal Target As Range)   On Error GoTo ERREND   If Target.Column <> 7 And Target.Column <> 8 Then Exit Sub   If Cells(Target.Row, 7).Value = Empty Or Cells(Target.Row, 8).Value = Empty Then Exit Sub   Application.EnableEvents = False   Application.ScreenUpdating = False   Dim 挿入行数 As Long '必要に応じてこの下の行を編集します------------------------------     挿入行数 = 0   'ここまで編集できます--------------------------------------------     Do While 挿入行数 = 0     Tmp = InputBox("挿入する行数を指定してください", "挿入行数", "1")     If Tmp = Empty Then GoTo ERREND     If IsNumeric(Tmp) Then 挿入行数 = CInt(Tmp)   Loop   Rows(CStr(Target.Row + 1) & ":" & CStr(Target.Row + 挿入行数)).Insert _   Shift:=xlDown   Range(Cells(Target.Row, 1), Cells(Target.Row, 6)).AutoFill _   Destination:=Range(Cells(Target.Row, 1), Cells(Target.Row + 挿入行数, 6)), _   Type:=xlFillCopy   Range(Cells(Target.Row, 7), Cells(Target.Row, 8)).AutoFill _   Destination:=Range(Cells(Target.Row, 7), Cells(Target.Row + 挿入行数, 8)), _   Type:=xlFillDefault   Cells(Target.Row + 挿入行数 + 1, 7).Select ERREND:   Application.ScreenUpdating = True   Application.EnableEvents = True End Sub

ty001
質問者

補足

ありがとうございます。 少しためしてみましたが、G列を入力した時にINPUT BOXを 表示し、G列の値がSだった場合は何もしないようにするにはどうすればいいでしょうか。 何回もお手数をおかけします。

関連するQ&A

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

    ボタンを押すと以下のことを実行するマクロを作成することはできますか? 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列の値を見て挿入する行数を判断するようなマクロができるのかわかりません。 どなたか教えて頂けないでしょうか。

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

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

  • エクセル行挿入 計算式のコピーができない

    エクセルでA列に得意先名、B列に製品名、C列に税抜き請求額、D列に税込み金額を設定して300行ほど入力した表組みに行を挿入したのですが税込み金額のとこの計算式が挿入時コピーされたり、されなかったりします。常に挿入時計算式がコピーできる方法があれば教えてください。 ちなみにA列に「かな」を設定していますがこれはコピーされます。しかしD列の税込み金額には、C列の税抜き金額かける1.05の計算式(C00*1.05)を設定しています。初歩的なことで申し訳ございません。よろしくお願いいたします

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

    以前ご質問がありましたが少し違います。 エクセルのマクロでこんなことは可能でしょうか? (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をこちらで変更いたします。 無理を言いますが可能であれば お詳しい方、ご教授宜しくお願い致します。

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

    エクセルのマクロでこんなことは可能でしょうか? (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"の部分。 無理を言いますが可能であれば お詳しい方、ご教授宜しくお願い致します。

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

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

  • 行の挿入で数式も自動的に挿入

    C1列に=SUM(A1:B1)を入力し、オートフィルを30行目までかけました。 3行目で行の挿入をした時に 自動的にC列に数式が入力されている状態 (上の行、又は下の行のコピーを挿入) にしたいのですがどうすればよろしいでしょうか? 行をコピー  → コピーしたセルの挿入 以外の方法はあるんでしょうか? よろしくお願い致します。

  • エクセル 行挿入のマクロについて

    こんばんは、エクセルのマクロについてお伺いします。 現在 A1:支店名 B1:連番 C1:在庫数 全部で1000行位入力があります。 ・A列には支店名 ・B列には連番は1・2・3~と1000件位 ・c列には在個数にはそれぞれ1桁から2桁の数字 【質問】 在庫数の数だけその連番の行を増やしたい。 例えば、 A2:東京支店 B2連番:1 C2在庫数:3 だとすると2行目のあとに2行挿入し在庫数が3なので下記のように3行にしたい。 A2 東京支店 B2連番 1 C2 在庫数 1 A3 東京支店 B3連番 1 C3 在庫数 空欄 A4 東京支店 B4連番 1 C4 在庫数 空欄 何せ数が多いのでマクロをお教え頂ければ助かります。 ※その際、支店名と連番は同じ物がはいるとありがたいです。 ※在庫数は空欄で構いません。 マクロでなくても方法があればお教え下さい。 よろしくお願い致します。

  • Excelの行挿入で

    Excelのシートにデータがつまっているのですが(これから新しく表を作るということではないということです。)、行の挿入をしたいのです。 このとき、行を選択して、右クリックで「挿入」を選べば挿入自体はできます。 しかし、 既にある表は、行が、A列とB列が結合されているのですが、 単に上記のように挿入すると、 A列B列が分かれている行が挿入されてしまいます。 新しく挿入された行のA列とB列を選択して、「セルの書式設定」の「配置」でセルを結合させてもいいのですが、 いちいちそうしなくても 挿入時点ですでに結合されているようにするにはどうすればよいですか。 (Excel2000)

  • Excelでコピーした行の挿入を繰り返すには

    Excelで行をコピーして、別の行で右クリックして コピーしたセルの挿入 を行うと、コピーした行を挿入できます。 しかし、一度 コピーした行を挿入すると、 もう右クリックしても 「コピーしたセルの挿入」はありません。 コピーした行の挿入を繰り返すには、どうすればよいですか。 Excel2000です。