【VB】指定行に文字の追加

このQ&Aのポイント
  • Exelのマクロで行に文字を追加する方法を教えてください。
  • A列に空欄1行を挟んだデータがあります。マクロで空欄行の1行前の末尾に”END”を追加したいです。
  • 具体的な形はそのままで、空欄行の1行前に”END”を追加するためのVBのマクロを教えてください。
回答を見る
  • ベストアンサー

【VB】指定行に文字の追加

Exelのマクロで ご教授お願いします。 AABB 2012 0219 1111 2222 3333 4444 5555 AABB 2012 0220 1111 2222 3333 4444 5555 6666 7777 AABB 2012 0221 1111 2222 A列にこのような、空欄1行を挟んだデータが数十件あります。これを、 AABB 2012 0219 1111 2222 3333 4444 5555 END AABB 2012 0220 1111 2222 3333 4444 5555 6666 7777 END AABB 2012 0221 1111 2222 END このように、マクロで形はそのままに空欄行の1行前の末尾に”END”を追加するという内容です。 よろしくお願いします。m(__)m

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

こんな感じかな? 空行が続くときは空行に「END」を追加しないようにしました。 Sub Sample()   For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row     If (Cells(i, 1) <> "") And (Cells(i + 1, 1) = "") Then Cells(i, 1) = Cells(i, 1).Text & "END"   Next i End Sub

indocom
質問者

お礼

回答ありがとうございます。 希望通りの結果になりました、大変参考になりました。

関連するQ&A

  • 【VB】バラバラの行数の文字を結合+追加

    Exelのマクロで ご教授お願いします。 AABB 2012 0219 1111 2222 3333 4444 5555 AABB 2012 0220 1111 2222 3333 4444 5555 6666 7777 AABB 2012 0221 1111 2222 このような、空欄1行を挟んだデータが数十件あります。すべてA列です。 これを・・・ AABB 2012 0219 1111 2222 3333 4444 5555 END AABB 2012 0220 1111 2222 3333 4444 5555 6666 7777 END AABB 2012 0221 1111 2222 END このようにマクロで一行にまとめ,末尾に”END”を追加したいのです。 1つのデータの行数は2行だったり、6行だったりと変則です。 よろしくお願いします。m(__)m

  • エクセル (1)行削除 (2)列追加と計算式入力 

    エクセル マクロで自動で計算させたいのですが、マクロの記録しかやったことがない者です。 添付画像のように、 元のデータとして、A列に黄色のセルがある表があります。 やりたいことは2種類あって (1):A列に黄色がある行のみを残す。 (1)-1:(1)をやった後に、列を追加し、計算式をデータがある行分だけ入力して計算させる。 (2):A列が無色の行のみを残す。 (2)-1:(2)をやった後に、列を追加し、計算式をデータがある行分だけ入力して計算させる。 (1)、(1)-1と、(2)、(2)-1それぞれのマクロを教えてください。 色の指定の違いだけになるかと思いますが、良く判らないので、お願いいたします。 また、例えば赤色などへの変更も可能か、教えて欲しく。 行を残す内容と、列追加や、計算式入力等、それぞれ判るように、コメント行を入れていただけると助かります。 申し訳ありませんが、お願いいたします。

  • 1レコード(1行)のいずれかの列に指定文字列が含まれるレコード件数

    EXCEL2003において、  列1,列2,列3・・・・ 行1 A,,B 行2 A,,, 行3 A,,A, 行4 B,,, ・・・・・・・・・・・・・・ 上記のように列1~3(実際は5列あります)に複数の データが入っています。 列1~5のいずれかに文字列「A」が含まれる行の件数を カウントしたいと考えています。 なお、行3のように列1、3に「A」が含まれる場合でも 1件と計上します。 上記例ですと、行1~3でそれぞれ1件ずつ計上、行4は対象外 とされて結果は計3件。 と集計できる方法について教えてください。 できればマクロは使わずに関数でと考えています。 よろしくお願いします。

  • 日付データで計算し、土、日分の2行追加する方法

    excel2010 日付データで計算し、土、日の2行を追加するマクロを作成しました。 途中は、正しく2行追加されます。 しかしながら、最終行が月曜日だけだと、最終行(月曜日)と最終行-1(金曜日)の間に 2行追加されません。 作成したマクロのどこが悪いのかを教えていただきたく。 構成は次の通り A列に日付のデータがA4セルから貼り付けられています。 A3セルは、題目で日付という文字列があります。 A列には、最初土、日の日付(行)がありません。 土、日の行、2行分を追加するために、計算式で行と次の行の差が3以上だったら 2行追加というマクロを設定します。 マクロは次の通り Sub donichiadd() '' Dim MxR As Long Dim h As Long MxR = Range("A65536").End(xlUp).Row - 1 For h = MxR To 5 Step -1 If Cells(h, 1) - Cells(h - 1, 1) >= 3 Then Cells(h, 1).Resize(2).EntireRow.insert End If Next h End Sub マクロは以上。 データが下記だとします。 A4セル:6/1 A5セル:6/2 A6セル:6/3 A7セル:6/4 A8セル:6/5 A9セル:6/8 A10セル:6/9 A11セル:6/10 A12セル:6/11 A13セル:6/12 A14セル:6/15 この状態でマクロを実行すると、 6/8と6/5の間は2行追加されますが、 6/15と6/12の間には2行追加されません。 尚、A15セルに6/16があった場合にマクロを実行すると、 6/15と6/12の間に2行追加されます。 最終行が月曜日だけだと、土、日分の2行を追加することが出来ない状態です。 どこが悪いのか教えていただきたく。

  • エクセル2003での自動行追加について

    マクロを使わずに自動行追加する方法を探しています。 条件:マクロや右クリックでの行又はセルの挿入を使わずに、各最終行の次にから 3行追加を繰り返す A1 B1 AAA 111 AAA 222 AAA 333 (ここに3行追加) SSS 777 SSS 444 SSS 888 (ここに3行追加) アルファベットは同一日付データ 数値は氏名データ データは都度可変します マクロを修得しておりませんので、何とかこの条件下でエクセルで可能な方法を探しております。 皆さま、ご教授をお願い致します。

  • エクセルで、2行おきに1行追加する方法

    エクセルで、2行おきに1行追加する方法 行が2000行位あるデータについて、 1行毎では時間がかかるので、 他の方法(マクロでも作業列等)を教えて下さい。 例 行1 A 行2 B 行3 C 行4 D 行5 E 行6 F 行7 G 行8 H     上記2000行のデータを下記のように行追加をしたいのです。 行1 A 行2 B 行追加 行3 C 行4 D 行追加 行5 E 行6 F 行追加 行7 G 行8 H よろしくお願い致します。

  • エクセル 行追加マクロについて

    エクセル 行追加マクロについて 2007エクセルマクロ初心者です。 スケジュール表を作成、行追加マクロを作ろうとしてます。 シートの上下に表があり、上の表に行追加です。 関数式を壊したくないので、一部セルへロックをかけています。 以下の点についてご教授をお願いいたします。 行追加マクロを実行するとパスワードを要求されます。 聞かれないようにできないでしょうか。? パスワードを入力した以降は要求されませんが シートの保護解除を選択すると保護が解除されてしまいます。 パスワード記載のマクロを試したことがありますが、 表へオートシェイプが描写できなかったので断念しました。 Sub 行追加() With ActiveSheet 'シート保護解除 .Unprotect Range("A65536").End(xlUp).Offset(-8).Select ActiveCell.Resize(1, 79).Select Selection.Copy Selection.Insert Shift:=xlDown Range("A65536").End(xlUp).Offset(-8).Select ActiveCell.Resize(1, 9).Select Selection.ClearContents 'シート保護 .Protect DrawingObjects:=False, Contents:=True, Scenarios:= _ True End With End Sub

  • 指定した文字列が含まれる行を削除する

    データの照合をしています。 指定した文字列が、「O列」に入っていたら、その行を削除し、 行をつめる というようなマクロを組みたいのですが、エラーがかかってしまいます。 (下のVBは、ネットで公開されていたのを使用させていただいております。) Sub Macro1() Const col As String = "A" '文字列が入力されている列 Dim idx As Long Dim keyWord keyWord = Application.InputBox("削除対象の文字列は?", Type:=2) If TypeName(keyWord) <> "Boolean" And Len(keyWord) > 0 Then   For idx = Cells(65536, col).End(xlUp).Row To 1 Step -1     If InStr(Cells(idx, col).Value, keyWord) > 0 Then '    If Application.CountIf(Rows(idx), "*" & keyWord & "*") > 0 Then       Rows(idx).Delete     End If   Next idx End If End Sub 「下から3行目のNEXTに対応するforがない」とエラーがでます。 ご教授、お願いいたします。

  • 特定文字のある行の前に空白行を挿入したい

    5000行ほどあるエクセルファイルで、 「■」の文字がある行の直前に空白行を挿入したいと思っています。 「■」のある行が1500行ほどあるので、 手作業は大変かと思い、マクロでやるのはどうかな?と おもったのですが、既存のマクロを少し修正することはあっても 初めからマクロを組んだことがないので、 どう書けばよいかわかりません。 データはA列にしか無い状態で、 「■」がある行の直前に空白行を挿入するマクロは どのように書けばよいのでしょうか? ご教授のほどお願いします。

  • 指定した文字列を含む行から、指定した文字列を

    含む行まで、全ての行を抽出して別ファイル(名前は元ファイルと同じ)としたいのです。 対象ファイルに結果を上書きでもかまいません。 指定したフォルダの中にある複数のフォルダ各々に1つずつ入っているテキストファイルが対象になります。 例) 東京都 新宿区 <start123AAA> 東京都 港区 <end>AAABBB 東京都 目黒区 どのファイルにも必ず<start と<end の文字列があります。(必ず1組です) <start の文字列を含む行から <end の文字列を含む行までを 抽出したいのです。 (欲しい結果↓) <start123AAA> 東京都 港区 <end>AAABBB フリーのエディタソフトのgrep、grepのマクロ、バッチでできないものかと試してみているのですが どうしてもうまくいきません。 抽出したい範囲、削除する範囲には禁則文字?が入っているのでバッチは難しいのでしょうか? できればバッチで処理できればなと思っているのですが、うまくいきません。 (<>!""/ あたりが入っています。別の文字に置き換えることは可能です) 範囲を抽出ではなく、 <startを含む行の一つ上の行から前を全て削除 <endを含む行の一つしたの行から後を全て削除 する方法や VBAで、スタート行をとエンド行をSearchして抽出する方法など ご教授いただきたくお願い致します。

専門家に質問してみよう