|
下記のような条件にて動作をするVBAを作成したいのですがご教示頂けましたら幸いです。
D列においてランダムで、商品名(SHOUHINMEI)というデータがある場合のみ括弧を含めた括弧内の文字データのみをA列に改行したいのですが…
元データ→D列 商品名(SHOUHINMEI)
VBA実施後のデータ→D列 商品名、A列(SHOUHINMEI)
A列での同じような動作は下記のコードで実施できております。
Sub A列を取得()
Application.ScreenUpdating = False
Dim R As Long
For R = 2 To Get最終行(ActiveSheet)
If Cells(R, 1) <> "" Then
Cells(R, 2) = Getカッコ内(Cells(R, 1))
End If
Next
End Sub
Function Getカッコ内(ByVal 元テキスト As String) As String
元テキスト = Replace(元テキスト, "(", "(")
元テキスト = Replace(元テキスト, ")", ")")
Dim 開始 As Long, 終了 As Long
開始 = InStr(元テキスト, "(") + 1
終了 = InStr(元テキスト, ")") - 1
If 開始 > 1 And 終了 >= 開始 Then
Getカッコ内 = Mid(元テキスト, 開始, 終了 - 開始 + 1)
End If
End Function
' シートの最終行を取得する
Function Get最終行(ws As Worksheet) As Long
Get最終行 = ws.UsedRange.Rows.Count + ws.UsedRange.Row - 1
End Function
|
|