- ベストアンサー
VBA 地名を抽出し、セルごとに分ける3
https://okwave.jp/qa/q9700177.html 上記は地名を抽出し、「抽出」シートのA2から分けるように並べるといったマクロを実行しています。 A列 B列 C列 D列 E列 地名 空白 地名 空白 地名 といった一つの列を飛ばして並べたいです。 下記がイメージ画像です。 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
前回のままで範囲を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
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
条件を小出しに修正しながら、何度も質問を繰り返している。 (1)本来は前問回答の一部を自力で修正すべきなのだろう。そのやり方もわからないレベルなら、前質問の回答もVBAで要求すべきではなかったのでは。質問の回答も、うまく行くか、批評するだけしかできないだろう。 (2)本当は、(1)がよいが、質問者のレベルでは、とびとびの列(全体を)マウスで指定しておいて、「ホーム」リボンの「挿入」をすればよいのでは?列挿入になる。 (3)どうしてもこの部分を、VBAに組み入れたいなら、(2)のマクロの記録を取って、列挿入の、コードを勉強したらよい。すでに出ている回答のコード群の、最後の部分に入れる。初心者段階は、マクロの記録を活用するという考えを持っていることも大切だ。
お礼
いつもありがとうございます。 おかげさまでできました。