Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


40430 / 76736 ←次へ | 前へ→

【41404】Re:()の判別
回答  Blue  - 06/8/9(水) 8:45 -

引用なし
パスワード
   ▼℃素人 さん:
>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

0 hits

【41378】()の判別 ℃素人 06/8/8(火) 9:02 質問
【41379】Re:()の判別 Blue 06/8/8(火) 9:23 回答
【41402】Re:()の判別 ℃素人 06/8/9(水) 8:18 質問
【41404】Re:()の判別 Blue 06/8/9(水) 8:45 回答
【41412】Re:()の判別 ℃素人 06/8/9(水) 11:30 質問
【41414】Re:()の判別 Blue 06/8/9(水) 12:36 回答
【41418】Re:()の判別 ℃素人 06/8/9(水) 16:58 質問
【41419】Re:()の判別 Blue 06/8/9(水) 17:04 回答
【41428】Re:()の判別 ℃素人 06/8/10(木) 7:37 お礼

40430 / 76736 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free