マクロでデータを転記する際の空白の処理方法

このQ&Aのポイント
  • マクロを使用して請求書のデータを売上表に転記する際、空白行の処理が必要です。
  • 請求書の範囲内のデータが1行〜4行の場合、5行目以降は空白となります。
  • 提供されたマクロの構文を使用してデータを転記することができます。
回答を見る
  • ベストアンサー

マクロでテーターを転記した時の空白なしに

いつもお世話になります。 WINDOWS7 EXCEL2010 です。 添付図で説明させていただきますと、 右側の「請求書」のL5:O9 のデーターを左の「売上表」に下記のマクロにて転記します。 元の値(請求書 L5:O9)の範囲内のデーターが1行 2行 3行 4行は空白行が又は5行の場合はすべてが埋まったりします。 この場合5行の時はいいのですが、例えばデーターが3行の時は添付図で言いますと5の行6の行のように2行が空白になります。 下記のマクロの構文をどういう具合にすればいいか御指導願えませんでしょうか。 参考に、 L5 =IF(B15="","",B15) M5 =IF(L5="","",$A$2) N5 =IF(L5="","",C15) O5 =IF(L5="","",H15) ※ 下記のようにしたかったのですがマクロに詳しくないのと時間がないので上記のような方法になり少し遠回りです。 ‘Range("B1").Select ‘ActiveCell.Offset(1, 0).Activate マクロです。 Sub 売上表へ転記() Dim ID As Long Dim 納品日 As Date ID = Range("M5").Value 日付 = Range("L5").Value Range("L5:O9").Copy Sheets("売上表").Activate Range("A65536").End(xlUp).Activate '販売記録A2がアクティブセル(タイトル行) ActiveCell.Offset(1, 0).Activate ActiveCell.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False 'A2:E2 ActiveCell.Offset(0, 4).Activate 'C2が空白 Do Until ActiveCell.Offset(2, 0).Value = "" ActiveCell.Value = ID 'G2 ActiveCell.Offset(0, 0).Value = 納品日 'A3 ActiveCell.Offset(1, 0).Activate Loop End Sub

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

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

続けてお邪魔します。 >Module7 に入れていてこれ以外はありません。 >同じ内容のエラーが出ます。 というコトは「インデックスが有効範囲にありません」というエラーになるのでしょうか? ん~~~ やはりシート名に関するエラーのような感じがしますが・・・ とりあえず前回のコードを少し変更してみました。 (★印の行だけです) Sub 転記2() Dim i As Long, wS As Worksheet Set wS = Worksheets("売上表") Worksheets("納請書1").Range("L5:O9").Copy wS.Cells(Rows.Count, "A").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues '★ Application.CutCopyMode = False For i = wS.Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1 '★ If WorksheetFunction.CountIf(wS.Cells(i, "A").Resize(, 4), "") = 4 Then wS.Cells(i, "A").Resize(, 4).Delete shift:=xlUp End If Next i End Sub ※ Usedrangeを使わずにA列で最終行を取得するようにしています。 ※ シートモジュールではなく、 必ずAlt+F11キー → メニュー → 挿入 → 「標準モジュール」にコードを記載してください。 これでもエラーになる場合、原因は判りかねます。m(_ _)m 

dorasuke
質問者

お礼

ありがとうございました。 御迷惑とご手数おかけしました。

dorasuke
質問者

補足

おはようございます。 今朝気合を入れて色々試しながらやり直しました。 マクロはNo1の構文でうまくできました。 売上表 納請書 のそれぞれのシートを新たに再作成したところうまくできました。 御迷惑とご手数おかけしました。

その他の回答 (2)

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

No.1です。 >※Worksheets("請求書").Range("L5:O9").Copy >シート名は「納請書1」なので下記のように変更しました。 >Worksheets("納請書1").Range("L5:O9").Copy こちらでもシート名を「納請書1」に訂正してマクロを実行してみました。 ちゃんと「納請書1」のL5~O9セルが「売上表」シートのA列以降に表示できました。 ※ 当方の解釈としては、単に「納請書1」シートのL5:O9セルを「表示表」シートのA列に 「値」として貼り付け、”空白に見える行”を削除しているだけですが、 そのほか細かい設定があるのでしょうか? 標準モジュールにコードを記載していますか? そうであれば エラー原因としてはおそらくシート名だけの問題のような気がします。 この程度でごめんなさい。m(_ _)m

dorasuke
質問者

補足

何度もすみません。 Module7 に入れていてこれ以外はありません。 同じ内容のエラーが出ます。 Sub 転記() Dim i As Long, lastRow As Long, wS As Worksheet Set wS = Worksheets("売上表") lastRow = wS.UsedRange.Rows.Count Worksheets("納請書1").Range("L5:O9").Copy wS.Cells(lastRow, "A").Offset(1).PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False For i = wS.UsedRange.Rows.Count To 2 Step -1 If WorksheetFunction.CountIf(wS.Cells(i, "A").Resize(, 4), "") = 4 Then wS.Cells(i, "A").Resize(, 4).Delete shift:=xlUp End If Next i End Sub

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

こんばんは! 「請求書」シートのL5~O9セルデータを「売上表」シートに上詰めで標示すれば良い訳ですよね? Sub Sample1() Dim i As Long, lastRow As Long, wS As Worksheet Set wS = Worksheets("売上表") lastRow = wS.UsedRange.Rows.Count Worksheets("請求書").Range("L5:O9").Copy wS.Cells(lastRow, "A").Offset(1).PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False For i = wS.UsedRange.Rows.Count To 2 Step -1 If WorksheetFunction.CountIf(wS.Cells(i, "A").Resize(, 4), "") = 4 Then wS.Cells(i, "A").Resize(, 4).Delete shift:=xlUp End If Next i End Sub ※ セルの表示形式はあらかじめ設定しておいてください。 こんな感じではどうでしょうか?m(_ _)m

dorasuke
質問者

補足

早速のご指導ありがとうございます。 御指導を試させていただいたら下記のごとくエラーがでました。 再度ご指導願えませんでしょうか。 実行時エラー'9': インデックスが有効範囲にありません。 下記の構文に黄色で反転しています。     ※Worksheets("請求書").Range("L5:O9").Copy      シート名は「納請書1」なので下記のように変更しました。 Worksheets("納請書1").Range("L5:O9").Copy

関連するQ&A

  • マクロでテーターを転記した時の空白なしに

    いつもお世話になります。 WINDOWS7 EXCEL2010 です。 添付図で説明させていただきますと、 右側の「請求書」のL5:O9 のデーターを左の「売上表」に下記のマクロにて転記します。 元の値(請求書 L5:O9)の範囲内のデーターが1行 2行 3行 4行は空白行が又は5行の場合はすべてが埋まったりします。 この場合5行の時はいいのですが、例えばデーターが3行の時は添付図で言いますと5の行6の行のように2行が空白になります。 下記のマクロの構文をどういう具合にすればいいか御指導願えませんでしょうか。 参考に、 L5 =IF(B15="","",B15) M5 =IF(L5="","",$A$2) N5 =IF(L5="","",C15) O5 =IF(L5="","",H15) ※ 下記のようにしたかったのですがそれ程詳しくないのと時間がないので上記のような方法になり少し遠回りです。 ‘Range("B1").Select ‘ActiveCell.Offset(1, 0).Activate マクロです。 Sub 売上表へ転記() Dim ID As Long Dim 納品日 As Date ID = Range("M5").Value 日付 = Range("L5").Value Range("L5:O9").Copy Sheets("売上表").Activate Range("A65536").End(xlUp).Activate '販売記録A2がアクティブセル(タイトル行) ActiveCell.Offset(1, 0).Activate ActiveCell.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False 'A2:E2 ActiveCell.Offset(0, 4).Activate 'C2が空白 Do Until ActiveCell.Offset(2, 0).Value = "" ActiveCell.Value = ID 'G2 ActiveCell.Offset(0, 0).Value = 納品日 'A3 ActiveCell.Offset(1, 0).Activate Loop End Sub

  • マクロよ動け

    VBA 難民です。 Excel で、左のセルが空白の場合、印刷文字を見えなくするつもりのマクロを作ってみましたが、知らん顔をされます。声の掛け方がまだよくわかってないのです。 こっちを向かせる方法を教えて下さい。よろしくお願いします。 Sub MacroWhiter() Dim a As Variant Dim b As Variant a = ActiveCell.Value b = ActiveCell.Offset(0, -1).Value '一つ左のセルの値 Range("B1").Activate 'ここから始める Do Until IsEmpty(ActiveCell.Value) '空きセルまで続ける If b = 0 Then 'ゼロの場合 ActiveCell.Font.Color = 2 '文字を白色にする ActiveCell.Offset(1, 0).Activate '下の行に移る End If Exit Do Loop '繰り返す a = ActiveCell.Value

  • 2つのものが一致時に転記するマクロ

    いつもお世話になります。 ここのサイトで 2つのブックでIDが一致したら 横にある文字を転記するというマクロがあるのですが 同じIDが続いても転記先のエクセルに全て転記したいと質問させて頂き そのマクロを使わせて頂いたのですが IDと時間を一致したものを転記させなければいけなくなりました A列の時間とB列のIDを一致したときに 大元に転記させるのは、変数で2つの項目を設定して 確認させればいいのかと思っていましたが上手くいきません 更に、データ量が多いので マクロを動かすたびに応答なしになるので コードをfindから別なコードを変えたほうがよろしいのでしょうか? 下記にマクロのコードと構成と画像を記述させて頂きます お手数ですがご教授して頂けないでしょうか? 恐縮ですがよろしくお願いいたします。 Sub 転記改造()   Dim w0 As Worksheet, w1 As Worksheet   Dim h As Range, Target As Range Dim i As Range, Target1 As Range   Dim FirstAddress As String   Set w0 = Workbooks("IDデータ.xls").Worksheets(1)   Set w1 = Workbooks("ID管理票.xls").Worksheets(1)   For Each h In w0.Range("A2:A" & w0.Range("A65536").End(xlUp).Row) For Each i In w0.Range("B2:B" & w0.Range("A65536").End(xlUp).Row)     If h.Offset(, 1).Value = "確認" Then       Set Target = w1.Range("D11:D60000").Find(what:=h.Value, LookIn:=xlValues, lookat:=xlWhole)       If Not Target Is Nothing Then         FirstAddress = Target.Address         Do           If Target.Offset(, -1).Value = "" Then             Target.Offset(, -1) = "確認"             Exit Do           Else             Set Target = w1.Range("D11:D60000").FindNext(Target)           End If         Loop While FirstAddress <> Target.Address       End If     End If   Next   next End Sub

  • 連続印刷処理前に確認しOKしてから再開するマクロ

    連続印刷マクロを作成したのですが、印刷の手前で確認を入れたいので、その処理を教えてください。 エクセルの表は項目が14列あり、999行です。 印刷は、2種類のシートに分け印刷できるようになっているのですが、確認は1度だけを考えています。 Sub 印刷_Click() Worksheets("集計・印刷").Activate '作業シート名 Range("A2").Select '番号(001~999)をこの次の"A3"セルより転記される。 Do '↓ ※1度の作業で15個の番号を最大とします。 'アクティブセルを1つ下に移動 ActiveCell.Offset(1, 0).Select '1度の作業で15枚印刷する。 '空欄であれば、プログラムを終了する 'Trim関数は前後のスペースを消去する If Trim(ActiveCell.Value) = "" Then Exit Do End If '非表示セルは印刷の対象としない If ActiveCell.EntireRow.Hidden = False Then If ActiveCell.Offset(, 2).Value = "単品" Then 'C列で単品の判断をする。 With Worksheets("A") 'Aシートへ記入 .Range("C3").Value = ActiveCell.Offset(0, 0).Value '番号 .Range("L24").Value = ActiveCell.Offset(0, 2).Value '種類 .Range("F3").Value = ActiveCell.Offset(0, 3).Value '型式 .Range("C23").Value = ActiveCell.Offset(0, 4).Value '測定日 .Range("C24").Value = ActiveCell.Offset(0, 5).Value '製造日 .Range("C9").Value = ActiveCell.Offset(0, 6).Value 'ライン .Range("C10").Value = ActiveCell.Offset(0, 7).Value '担当 .Range("C7").Value = ActiveCell.Offset(0, 9).Value '外観 .Range("C8").Value = ActiveCell.Offset(0, 10).Value '気密 '繰返し処理をしているので一度に印刷される。 .PrintOut End With ElseIf ActiveCell.Offset(, 2).Value = "複数品" Then'C列で複数品の判断をする。 With Worksheets("B") 'Bシートへ記入 .Range("C3").Value = ActiveCell.Offset(0, 0).Value '番号 .Range("L24").Value = ActiveCell.Offset(0, 2).Value '種類 .Range("F3").Value = ActiveCell.Offset(0, 3).Value '型式 .Range("C23").Value = ActiveCell.Offset(0, 4).Value '測定日 .Range("C24").Value = ActiveCell.Offset(0, 5).Value '製造日 .Range("C9").Value = ActiveCell.Offset(0, 6).Value 'ライン .Range("C10").Value = ActiveCell.Offset(0, 7).Value '担当 .Range("C7").Value = ActiveCell.Offset(0, 9).Value '外観 .Range("C8").Value = ActiveCell.Offset(0, 10).Value '気密 .Range("C11").Value = ActiveCell.Offset(0, 23).Value '(1)min .Range("C12").Value = ActiveCell.Offset(0, 24).Value '(1)max .Range("F7").Value = ActiveCell.Offset(0, 25).Value '(2)min .Range("F8").Value = ActiveCell.Offset(0, 26).Value '(2)max '繰返し処理をしているので一度に印刷される。 .PrintOut End With End If End If Loop End Sub

  • Excelマクロ:変数でセル範囲指定

    マクロの迷い人です。 Excelの表をマクロで印刷しようと思っています。 行の数が毎回違うため、最終セルもその都度指定しなければなりません。 A1 B1 A2 B2 A3 B3 A4 B4 この例で、A5 B5 以降は空セルとします。 印刷範囲を Range("A1:B4")と書かずに、そのときどきのアクティブセルを変数に代入し、変数を使って範囲指定したいのです。 Sub MacroTest () Dim a As Variant Dim b As Variant Range("B1").Activate Do While a <> 0 ActiveCell.Offset(1, 0).Activate '空白でなければ一つ下に移る a = ActiveCell.Value Loop ActiveCell.Offset(-1, 0).Activate '上の行に移る b = ActiveCell.Value Range("A1:"& b).Select End Sub こうしてみましたがダメでした。 デバッグの方法がわからないので教えて下さい。よろしくお願いします。

  • エクセルマクロが重い

    こんにちは。 ご教授くださいませ。 すでに先方が作っているエクセルのシートがありまして、 そのシートの表組み規則にのっとって入力するユーザーフォーム を私のほうで作ったのですが、重いです。 selectの多用はだめ!というところまでは調べたのですが じゃあどうしたらいいかわかりません。 ■ '--------------------8時から If OptionButton1.Value = True Then ActiveCell.Offset(3, -1).Range("A1").Select ActiveCell = UserForm3.TextBox1.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox2.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox3.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox4.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox5.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox6.Value ActiveCell.Offset(3, 0).Range("A1").Select ActiveCell = UserForm3.TextBox12.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox11.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox10.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox9.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox8.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox7.Value ActiveCell.Offset(3, 0).Range("A1").Select ActiveCell = UserForm3.TextBox13.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox14.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox15.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox16.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox17.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox18.Value ActiveCell.Offset(3, 0).Range("A1").Select ActiveCell = UserForm3.TextBox24.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox23.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox22.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox21.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox20.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox19.Value ActiveCell.Offset(3, 0).Range("A1").Select ActiveCell = UserForm3.TextBox25.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox26.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox27.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox28.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox29.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox30.Value 'ActiveWorkbook.Save MsgBox "入力しました。", vbInformation, "確認" End If '--------------------8時から(END ■ 基本の流れは... 最初にオプションボタン3つのどれか1個の 選択を求め、その条件に応じて 始基点となるセルが変わります。 で、あとは与えられた表組みを縦や横に 移動しながら、対応するテキストボックスの 値を入れる、という 我ながら頭の悪い方法で^^; .selectではない、スマートな方法があればと思います。 ぜひお知恵を!

  • マクロの処理速度向上

    教えてください。マクロ初心者です。以下のようなマクロを組みました。 Sub 処方箋一覧() Dim vbOK As Integer Set WS1 = Worksheets("sheet1") Set WS7 = Worksheets("sheet7") WS7.Select Range("b2").Select Selection.End(xlDown).Select ActiveCell.Offset(1, -1).Select ActiveCell.Offset(0, 1) = WS1.Range("B3") ActiveCell.Offset(0, 2) = WS1.Range("h3") ActiveCell.Offset(0, 3) = WS1.Range("q3") ActiveCell.Offset(0, 4) = WS1.Range("v3") ActiveCell.Offset(0, 5) = WS1.Range("y3")         ~中略~ ActiveCell.Offset(0, 167) = WS1.Range("w75") ActiveCell.Offset(0, 168) = WS1.Range("x75") vbOK = MsgBox("入力完了!!", vbOKOnly, "処理確認") If vbOK = 1 Then Worksheets("sheet1").Activate End If End Sub 合計で167のセルを違うシートに転記するマクロです。 動作するのですが、速度が非常に遅くて困っています。 処理速度を向上させるようなマクロの組み方を調べているのですが、わからず困っています。どなたか、教えていただけると助かります。 よろしくお願いいたします。

  • エクセルで空白を等間隔に挿入したい

    タイトルにあるようにエクセルでマクロを使って等間隔に空白行を挿入したいのですが、 現在コードがこのようになっております。 **************************** Sub Macro1() Range("AA34").Select Do While (ActiveCell.Value <> "") For i = 1 To 10 '何行の空白? ActiveCell.Offset(1, 0).EntireRow.Insert shift:=xlDown ' Next ActiveCell.Offset(34, 0).Activate '挿入間隔? Loop MsgBox "完了" End Sub ******************************* とありまして走らせますと 24行おきに空白ができるのですが、 問題点がいくつかできました ・この場合、全体を挿入していくので(AA:AG)といった特定の列を指定したい ・空白が1列x10行と挿入されるので10行1度にしたい ・挿入していく最終行を指定したい 以上でございます ぜひ、ご教授ねがいます。

  • エクセルマクロで条件で印刷がしたいのですが理解不能

    エクセルのマクロで条件付きで印刷がしたいのですが、解りません… クイック印刷ボタンを押すとセルの文字列の変化(「合」&「不」の2種類)によって印刷フォームを変えたいのです。 2列目の結果を判断しA3から空白セルまで連続印刷2種類とも、一度で無理ならボタン2個準備 可 sheet4---"合" フォーム   sheet5---"不" フォーム sheet3に一覧表があります。 "合"マクロの作成したのですが、"不"をどのように入れればいいか解りません。     1 2 3 4 5 6 7 8 9 10 ..... 13 14 15 16 A2  製番 合否 種類 型式 開始 終了 工1 工2 外観 気密.....初MIN 初MAX 終MIN 終MAX A3 001 合  AA 123 1/7 1/15 良 良  良 良 0.8 0.9 1.2 1.5 A4 002 合  BB 456 1/8 1/16 良 良  良 良 0.8 0.9 1.2 1.5 A5 003 不  CC 789 1/9 1/12 良 否   良 良 0.6 0.8 - - ・ ・ A22 020 合  TT 999 1/7 1/15 良 良  良 良 0.8 0.9 1.2 1.5 Worksheets("sheet3").Activate Range("A3").Select '開始セル製造番号 'ループXの開始 Do 'アクティブセルを1つ下に移動 ActiveCell.Offset(1, 0).Select If oSht.Cells(idx, 3) = "合" Then   ' 繰り返し処理  End If '空欄であれば、プログラムを終了する 'Trim関数は前後のスペースを消去する If Trim(ActiveCell.Value) = "" Then Exit Do End If '非表示セルは印刷の対象としない If ActiveCell.EntireRow.Hidden = False Then 'これ以降、すべて印刷用シート With Worksheets("合") 'レコードの先頭セルを選択 .Range("C3").Value = ActiveCell.Offset(0, 0).Value '製造番号 .Range("L24").Value = ActiveCell.Offset(0, 2).Value '種類 .Range("F3").Value = ActiveCell.Offset(0, 3).Value '型式 .Range("C14").Value = ActiveCell.Offset(0, 4).Value '開始日 .Range("C15").Value = ActiveCell.Offset(0, 5).Value '終了日 .Range("C6").Value = ActiveCell.Offset(0, 6).Value '工程1担当 .Range("C7").Value = ActiveCell.Offset(0, 7).Value '工程2担当 .Range("C9").Value = ActiveCell.Offset(0, 9).Value '外観 .Range("C10").Value = ActiveCell.Offset(0, 10).Value '気密 .Range("C11").Value = ActiveCell.Offset(0, 13).Value '初期MIN .Range("C12").Value = ActiveCell.Offset(0, 14).Value '初期MAX .Range("C13").Value = ActiveCell.Offset(0, 15).Value '終期MIN .Range("C14").Value = ActiveCell.Offset(0, 16).Value '終期MAX 'レコードの最終セルであれば、1部印刷を実行する .PrintOut '印刷用シート終了 End With

  • 任意の整数まで欠番行を挿入するマクロは?

    エクセルのSheet1のA列の1行目から下の行へ1から1000まで数字(整数)が入っているとします。ただし、欠番があります。そこで、欠番を挿入して行を増やしたいのですが、すべての整数を挿入するには以下のマクロで解決しているのですが、任意の整数(下二桁が同じ整数)まで挿入したら次の桁へ飛んで、また同じ任意の整数(下二桁が同じ整数)まで来たら次の桁へ飛んでという具合に、これらを繰り返したいのです。例えば、1から46まで、100から146まで、200から246まで、300から346までという具合です。どなたかご教授よろしくお願いします。 Sub 欠番挿入() Dim i As Integer i = 0 Do Until ActiveSheet.Range("a2").Offset(i, 0).Value = "" ActiveSheet.Range("a2").Offset(i, 0).Activate If ActiveCell.Value <> ActiveCell.Row Then Rows(ActiveCell.Row).Insert ActiveSheet.Range("a2").Offset(i, 0).Value _ = ActiveCell.Row End If i = i + 1 Loop End Sub

専門家に質問してみよう