• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelで抽出、書き出しを繰り返すマクロ)

Excelで抽出、書き出しを繰り返すマクロ

このQ&Aのポイント
  • ExcelのD列に記載された表を横一列に書き出すマクロの作成方法
  • 書式が異なるセルを複数回繰り返し書き出す場合の対応方法
  • 要求された条件に基づいてExcelマクロを作成する手順

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

ANo.1です。 Sub test()  Dim RegExp As Object  Dim r As Range  Dim rr As Range, rs As Range  Dim i As Integer, j As Integer  Dim match, v  ReDim v(1 To 1, 1 To 6)    Set RegExp = CreateObject("VBScript.Regexp")  RegExp.Pattern = "\d+"  RegExp.Global = True  i = 7  For Each r In Range("D1", Cells(Rows.Count, 4).End(xlUp))      If InStr(r.Value, "(") And rr Is Nothing Then         Set rr = r.Resize(3)             For j = 1 To 3                 v(1, j) = Split(Replace(rr.Item(j).Value, ")", ""), "(")(0)                 v(1, j + 3) = Split(Replace(rr.Item(j).Value, ")", ""), "(")(1)             Next             rr.Item(1).Offset(, 1).Resize(, 6).Value = v             ReDim v(1 To 1, 1 To 6)             With rr.Resize(1).Offset(3)                  If RegExp.test(.Value) Then                     For Each match In RegExp.Execute(.Value)                         rr.Item(1).Offset(, i).Value = match.Value                         i = i + 1                     Next                  End If             End With      ElseIf LenB(r.Value) < 1 Then         Set rr = Nothing         i = 7      End If  Next  Set RegExp = Nothing  Set rr = Nothing  Erase v End Sub ご参考程度に。

tricktrick
質問者

お礼

完璧に希望通りの動きでした! 面倒な事を何度もやっていただけて本当に感謝しております。 VBA入門サイトを見ても序盤のところから分からなくて 途方に暮れておりましたが、がんばって勉強してみたいと思います。 前回の質問に引き続き、本当にどうもありがとうございました。

その他の回答 (3)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.4

ANo.3です。 データの区切りとして空白セルが存在しない場合があり、且つ必ず”全角文字”で区切る事が出来るのであれば、 ElseIf LenB(r.Value) < 1 Then を ElseIf LenB(r.Value) < 1 Or (r.Value = StrConv(r.Value, vbWide)) Then としてみて下さい。 それ以外で不具合があれば提示願います。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

2段階に分ければよいのでは? 1)列→行への変換は「形式を選択して貼り付け」で可能ですから   これをマクロの自動記録で行えば、ほぼ同等のコードができます 2)ANo1さんがご指摘のように()内を取り出す部分は、すでにわかってい るでしょうからこれを下の行に表示するようにする。 つなげたければ、そのままマクロをつなげればOKです。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

直接の回答ではないですが。 Excelのマクロで()内の文字を抽出して書き出したい http://okwave.jp/qa4373238.html 前回ご質問のリンクを貼っておいた方がBetterな気がしますけど。 (類似したご質問と受け取りました)

tricktrick
質問者

お礼

補足ありがとうございました。

関連するQ&A