下記質問で空行を追加するエクセルのマクロを

教えていただきました。
http://q.hatena.ne.jp/1245772843

ちなみに教えていただいたマクロに機能を追加し、
空の行を入れた都道府県名のみを
E列にコピーするということを行いたいです。

可能でしょうか?


北海道 ○○市○~     北海道
北海道 ○○○○市○~
北海道 ○○市○~

青森県 ○市~       青森県

宮城県 ○○市~      宮城県
宮城県 ○○○市~
宮城県 ○○○市~
宮城県 ○○○市~
宮城県 ○○○市~

福島県 ○市~       福島県
福島県 ○○○○市○~


どうぞよろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/07/19 08:08:57
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:SALINGER No.1

回答回数3454ベストアンサー獲得回数969

ポイント300pt

リンク先の回答の最後に以下のコードを挿入してみてください。

    Dim s As String
    lastRow = Cells(Rows.Count, 2).End(xlUp).Row
    For r = 1 To lastRow
        If Cells(r, 1).Value <> s And Cells(r, 1).Value <> "" Then
            s = Cells(r, 1).Value
            Cells(r, "E").Value = s
        End If
    Next
id:ohtsu6

出来ました。

どうもありがとうございます。

2009/07/19 08:08:42
  • id:Mook
    回答のやり方でもできるでしょうが、挿入処理時にやってしまえば
    二重に処理する必要がありません。

    その場合は、下記のような変更になります。

    ------------------------------
    県単位で空白行を挿入の場合
    ------------------------------
      For r = lastRow To 2 Step -1
        If Cells(r, "A").Value <> Cells(r - 1, "A").Value Then
          Cells(r, "E").Value = Cells(r, "A").Value '★この行を挿入
          Rows(r).Insert
        End If
      Next
      Cells(1, "E").Value = Cells(1, "A").Value '★この行を挿入:先頭行の処理

    ------------------------------
    市単位で空白行を挿入の場合
    ------------------------------
      For r = lastRow To 2 Step -1
        If Cells(r, "B").Value <> Cells(r - 1, "B").Value Then
    '★ここから下3行を挿入
          If Cells(r, "A").Value <> Cells(r - 1, "A").Value Then
            Cells(r, "E").Value = Cells(r, "A").Value
          End If
    '★ここまで
          Rows(r).Insert
        End If
      Next
      Cells(1, "E").Value = Cells(1, "A").Value '★この行を挿入:先頭行の処理
  • id:SALINGER
    他の人が作ったコードに手を加えるのは好きではありませんし、
    修正したコードを掲載するのは本位ではありませんので
    別のコードとしましたが、何が不都合がありましたでしょうか?
    不都合があった場合は、ご指摘ください。


    それと、それですと1行目の都道府県が空白となるので、もう一手間必要になります。
  • id:Mook
    この質問が前回私が回答したものに対する質問と思えましたので、オリジナルコードの作者として、
    今回の変更ならばこのようにしたい、という思いから回答(閉め切られていたのでコメント)した
    だけです。

    自身のコードへの愛着であって、別にSALINGERさんの回答に異論を唱えているわけではありませんので、
    気になさらないでください。

    >それと、それですと1行目の都道府県が空白となるので、もう一手間必要になります。
    というのはループの外に処理が出るのが余計な手間という意味でしょうか。

    それとも何か見落としてるかな?
  • id:SALINGER
    Mookさんに対してコメントしたわけではありませんので誤解なさらぬように。
  • id:Mook
    誤解していました。
    失礼いたしました。
  • id:ohtsu6
    Mookさま
    いつもありがとうございます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません