|
▼℃素人 さん:
>Blueさんに教えていただいたVBAで昨日、一日中思考錯誤を繰り返しましたが結局できません。
なにを試行錯誤し、どううまくいかなかったのか具体的に書かれたほうがよいです。
>例えばA列に会社名があるとして、()の部分をB列に移動させたい場合はどうやったらいいのでしょうか?
タイミング的にはどういうタイミングで行いたいのでしょうか?
マクロを呼んで一気に処理させたいとか、A列に入れた瞬間とか。
とりあえず、マクロを呼んでA1のセルから、データのある最終行まで処理するコードです。
Option Explicit
Public Sub test()
Dim endRow As Long
Dim i As Long
' A列の最終行を取得
endRow = Worksheets("Sheet1").Range("A65536").End(xlUp).Row
' 1行目から最終行まで処理
For i = 1 To endRow
With Worksheets("Sheet1").Cells(i, 1)
' A列の括弧の中身を取り出しB列に入れる
.Offset(, 1).Value = ForCompany(.Value)
End With
Next
End Sub
' 文字列の後ろから括弧の中身を取得する関数
Private Function ForCompany(ByVal text As String)
Dim startPos As Long
Dim endPos As Long
' 終了括弧の位置
endPos = InStrRev(text, ")")
If endPos <> 0 Then
' 開始括弧の位置
startPos = InStrRev(text, "(", endPos)
If startPos <> 0 Then
ForCompany = Mid$(text, startPos + 1, endPos - startPos - 1)
End If
End If
End Function
|
|