Excel VBA質問箱 IV

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

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


40420 / 76736 ←次へ | 前へ→

【41414】Re:()の判別
回答  Blue  - 06/8/9(水) 12:36 -

引用なし
パスワード
   ▼℃素人 さん:
>ですが、もともとのデータ(この場合A列にある)の株式会社ABCD(XYZ有限会社様向)とある(XYZ有限会社様向)を削除したいのですがどうしたらいいでしょう?

変更点が結構あるので、どこがどう変わっているのか、
ByRefって?なんでFunctionからSubになったのか?を理解して使ってください。

Option Explicit

Public Sub test()
  Dim endRow As Long
  Dim i   As Long
  Dim fromCompany As String
  Dim toCompany  As String
 
  ' A列の最終行を取得
  endRow = Worksheets("Sheet1").Range("A65536").End(xlUp).Row
  ' 1行目から最終行まで処理
  For i = 1 To endRow
    With Worksheets("Sheet1").Cells(i, 1)
      ' A列の文字列から会社名の取得
      Call GetCompanyInfo(.Value, fromCompany, toCompany)
      ' 各セルに反映
      .Value = fromCompany
      .Offset(, 1).Value = toCompany
    End With
  Next
End Sub

' 文字列の後の括弧を元に、会社名を取得する関数
Private Sub GetCompanyInfo(ByVal text As String, _
              ByRef fromCompany As String, _
              ByRef toCompany 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
      ' 括弧の中身を取得
      toCompany = Mid$(text, startPos + 1, endPos - startPos - 1)
      ' 括弧の前を取得
      fromCompany = Left$(text, startPos - 1)
    End If
  End If
End Sub

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 お礼

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