• ベストアンサー

VBA 地名を抽出し、セルごとに分ける3

https://okwave.jp/qa/q9700177.html 上記は地名を抽出し、「抽出」シートのA2から分けるように並べるといったマクロを実行しています。 A列  B列  C列  D列  E列 地名  空白  地名  空白  地名 といった一つの列を飛ばして並べたいです。 下記がイメージ画像です。 宜しくお願いします。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.1

前回のままで範囲をK1まで広げたらいけると思いますが、コードの位置関係などの部分も多少変更しました。 Sub Test() Dim i As Long, mCol As Variant Dim FStr As String, tmp As String Dim mRange As Range, mFR As Range With Sheets("抽出") Set mFR = .Range("A1:K1") For i = 2 To Cells(Rows.Count, "G").End(xlUp).Row If Cells(i, "G").Value <> "" Then tmp = Split(Cells(i, "G"), "(")(1) FStr = Left(tmp, Len(tmp) - 1) Set mRange = mFR.Find(FStr, LookAt:=xlWhole) If mRange Is Nothing Then MsgBox "都市が存在しません。 " & Cells(i, "G").Value, vbInformation Else mCol = mRange.Column .Cells(.Cells(Rows.Count, mCol).End(xlUp).Row + 1, mCol).Value = Cells(i, "G").Value Set mRange = Nothing End If End If Next Set mFR = Nothing End With End Sub

nkmyr
質問者

お礼

いつもありがとうございます。 おかげさまでできました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

条件を小出しに修正しながら、何度も質問を繰り返している。 (1)本来は前問回答の一部を自力で修正すべきなのだろう。そのやり方もわからないレベルなら、前質問の回答もVBAで要求すべきではなかったのでは。質問の回答も、うまく行くか、批評するだけしかできないだろう。 (2)本当は、(1)がよいが、質問者のレベルでは、とびとびの列(全体を)マウスで指定しておいて、「ホーム」リボンの「挿入」をすればよいのでは?列挿入になる。 (3)どうしてもこの部分を、VBAに組み入れたいなら、(2)のマクロの記録を取って、列挿入の、コードを勉強したらよい。すでに出ている回答のコード群の、最後の部分に入れる。初心者段階は、マクロの記録を活用するという考えを持っていることも大切だ。

関連するQ&A