[[20220130133526]] 『連名で両方に様をつける』(れん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『連名で両方に様をつける』(れん)

名前を入力したときの様の自動入力について、連名で両方の名前に様をつける方法はあるのでしょうか。
1つのセルに太郎・花子と入力して「太郎様・花子様」のように表示させたいです。ユーザー定義@"様"で二人目の名前の後ろにつけることはできると思いますが、一人目(・の前)につけることはできるのでしょうか。
よろしくお願いします。

< 使用 Excel:Office365、使用 OS:Windows10 >


 VBAになってしまいますが、どうでしょうか。
 ユーザー定義での解決は、引き続き達人の回答をお待ちください。

 A列に名前が入力されており、区切り文字は「・」とする。

 Sub Macro1()
    Dim r As Range
    Dim i As Long, n As Long
    Dim ptn As String, tmp As String
    With CreateObject("VBScript.RegExp")
        For Each r In Range(Cells(1, "A"), Cells(Rows.Count, "A").End(xlUp))
            n = Len(r.Value) - Len(Replace(r.Value, "・", ""))
            ptn = "^([\w\W]+)"
            tmp = "$1様"
            For i = 1 To n
                ptn = ptn & "(・[\w\W]+)"
                tmp = tmp & "$" & i + 1 & "様"
            Next i
            .Global = True
            .Pattern = ptn & "$"
            r.Value = .Replace(r.Value, tmp)
        Next r
    End With
 End Sub
(三文) 2022/01/30(日) 15:05

ワークシートのChangeイベントで「様」を追加する方法。

 -----------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Range
    Set r = Intersect(Target, Range("A:A"))
    If r Is Nothing Then Exit Sub

    Application.EnableEvents = False
    Dim c As Range, a, i As Long
    For Each c In r
        a = Split(c.value, "・")
        For i = 0 To UBound(a)
            If a(i) Like "*[!様]" Then
                a(i) = a(i) & "様"
            End If
        Next
        c.value = Join(a, "・")
    Next
    Application.EnableEvents = True
End Sub
 -----------------------------------------

同じくユーザー定義での方法は達人の回答を待ってください。
(hatena) 2022/01/31(月) 12:30


ありがとうございます。
(れん) 2022/02/03(木) 14:13

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.