投稿/コメントを表示します。

いつもお世話になっております。
動画で教えて頂いた1文字ずつ検索する方法はわかりやすく、ForNext構文が工夫次第で活用の幅が広がる事に驚きと楽しみを感じています。

いつも動画を見る前に自分で挑戦している為、今回は別のアプローチのプログラムができました。
動作として問題はなさそうなのですが、書き方に工夫ができるのではないかと考えております。
「サブプロシージャの分割と呼び出し」を活かせないか考えてみたのですが、変数を含むと上手くいきません。
下記、6行が7回も繰り返されるのですがすっきりと書ける方法がありましたら、ご教示ください。
(問題と転記先が違ったり、連番のプログラムが抜けていたりするのですが、そこはご容赦ください)
            Range("I" & tenki).Value = Range("A" & gyo).Value
            Range("J" & tenki).Value = Range("B" & gyo).Value
            Range("K" & tenki).Value = Range("C" & gyo).Value
            Range("L" & tenki).Value = Range("D" & gyo).Value
            Range("N" & tenki).Value = Range("F" & gyo).Value
            Range("O" & tenki).Value = Range("G" & gyo).Value

----
Sub mondai()
    Dim yakuwari
    Dim tenki
    Dim ten1
    Dim ten2
    Dim ten3
    Dim gyo
    tenki = 2
    
    For gyo = 2 To 7
        yakuwari = Range("E" & gyo).Value
        ten1 = InStr(yakuwari, "、")
        ten2 = InStr(ten1 + 1, yakuwari, "、")
        ten3 = InStr(ten2 + 1, yakuwari, "、")
        
        If ten1 = 0 Then
            Range("M" & tenki).Value = yakuwari
            Range("I" & tenki).Value = Range("A" & gyo).Value
            Range("J" & tenki).Value = Range("B" & gyo).Value
            Range("K" & tenki).Value = Range("C" & gyo).Value
            Range("L" & tenki).Value = Range("D" & gyo).Value
            Range("N" & tenki).Value = Range("F" & gyo).Value
            Range("O" & tenki).Value = Range("G" & gyo).Value
    
            tenki = tenki + 1
        Else
            Range("M" & tenki).Value = Mid(yakuwari, 1, ten1 - 1)
            Range("I" & tenki).Value = Range("A" & gyo).Value
            Range("J" & tenki).Value = Range("B" & gyo).Value
            Range("K" & tenki).Value = Range("C" & gyo).Value
            Range("L" & tenki).Value = Range("D" & gyo).Value
            Range("N" & tenki).Value = Range("F" & gyo).Value
            Range("O" & tenki).Value = Range("G" & gyo).Value
            
            tenki = tenki + 1
                If ten2 = 0 Then
                    Range("M" & tenki).Value = Mid(yakuwari, ten1 + 1)
                    Range("I" & tenki).Value = Range("A" & gyo).Value
                    Range("J" & tenki).Value = Range("B" & gyo).Value
                    Range("K" & tenki).Value = Range("C" & gyo).Value
                    Range("L" & tenki).Value = Range("D" & gyo).Value
                    Range("N" & tenki).Value = Range("F" & gyo).Value
                    Range("O" & tenki).Value = Range("G" & gyo).Value
                    
                    tenki = tenki + 1
                Else
                    Range("M" & tenki).Value = Mid(yakuwari, ten1 + 1, ten2 - ten1 - 1)
                    Range("I" & tenki).Value = Range("A" & gyo).Value
                    Range("J" & tenki).Value = Range("B" & gyo).Value
                    Range("K" & tenki).Value = Range("C" & gyo).Value
                    Range("L" & tenki).Value = Range("D" & gyo).Value
                    Range("N" & tenki).Value = Range("F" & gyo).Value
                    Range("O" & tenki).Value = Range("G" & gyo).Value
                    
                    tenki = tenki + 1
                    If ten3 = 0 Then
                        Range("M" & tenki).Value = Mid(yakuwari, ten2 + 1)
                        Range("I" & tenki).Value = Range("A" & gyo).Value
                        Range("J" & tenki).Value = Range("B" & gyo).Value
                        Range("K" & tenki).Value = Range("C" & gyo).Value
                        Range("L" & tenki).Value = Range("D" & gyo).Value
                        Range("N" & tenki).Value = Range("F" & gyo).Value
                        Range("O" & tenki).Value = Range("G" & gyo).Value
                        
                        tenki = tenki + 1
                    Else
                        Range("M" & tenki).Value = Mid(yakuwari, ten2 + 1, ten3 - ten2 - 1)
                        Range("I" & tenki).Value = Range("A" & gyo).Value
                        Range("J" & tenki).Value = Range("B" & gyo).Value
                        Range("K" & tenki).Value = Range("C" & gyo).Value
                        Range("L" & tenki).Value = Range("D" & gyo).Value
                        Range("N" & tenki).Value = Range("F" & gyo).Value
                        Range("O" & tenki).Value = Range("G" & gyo).Value
                        
                        tenki = tenki + 1
                        Range("M" & tenki).Value = Mid(yakuwari, ten3 + 1)
                        Range("I" & tenki).Value = Range("A" & gyo).Value
                        Range("J" & tenki).Value = Range("B" & gyo).Value
                        Range("K" & tenki).Value = Range("C" & gyo).Value
                        Range("L" & tenki).Value = Range("D" & gyo).Value
                        Range("N" & tenki).Value = Range("F" & gyo).Value
                        Range("O" & tenki).Value = Range("G" & gyo).Value
                        
                        tenki = tenki + 1
                    
                    End If
                End If
        End If
    Next
    

End Sub

2023/07/04 22:03