• ベストアンサー
  • 困ってます

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

  • 質問No.9701638
  • 閲覧数34
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 65% (278/427)

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

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

  • 回答No.1
  • ベストアンサー

ベストアンサー率 55% (655/1190)

Visual Basic カテゴリマスター
前回のままで範囲を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

お礼率 65% (278/427)

いつもありがとうございます。
おかげさまでできました。
投稿日時:2020/01/15 09:47

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 28% (4513/16115)

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

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ