- ベストアンサー
Excelで頭に文字をマクロで加える
- Excelで頭に文字をマクロで加える方法について質問です。
- 現在、次のVBAを使用してセルの値の前に文字を追加していますが、いくつかの問題があります。
- セルがブランクの場合にも文字が追加されてしまったり、ダブリの文字がある場合には文字がダブリの数だけ追加されてしまいます。修正すればよい方法はありますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Sub Macro2() Dim i As Long For i = 2 To 100 If Range("A" & i) <> "" Then Range("A" & i).Value = "1-" & Range("A" & i).Value End If Next i End Sub 繰り返しに条件分岐を混ぜればよいと思います
その他の回答 (2)
- NURU_osan
- ベストアンサー率50% (297/593)
失礼、No.1で回答したものですがブランクのことを忘れていました。 回答を修正します。 Sub Macro1() '変数宣言 Dim Str0 As String Dim Str1 As String Dim I As Long Dim R0 As Long Dim R1 As Long '処理 For R0 = 1 To 100 Str0 = Cells(R0, 1).Value 'ブランク回避 If Str0 <> "" Then '重複数をカウント I=0 For R1 = 1 To R0 Str1=Cells(R1, 1).Value If Len(Str0)>Len(Str1) Then ElseIf Str0=Right(Str1, Len(Str0)) Then I = I + 1 End If Next R1 '記述 Cells(R0, 1).Value = I & "-" & Str0 End If Next R0 End Sub
お礼
NURU_osanさん、有難うございます。勉強がてら自分なりに手を加えて試行してみたいと思います。
補足
NURU_osanさま、 早速ありがとうございます。 ブランクの方は希望通りだったのですが、残念ながらダブリの方は希望通りではありませんでした。 下のように、ダブリはすべて 1-003 になるように修正できないでしょうか。 よろしくお願いします。 1-項目番号 1-001 1-002 1-003 2-003 1-005 1-006 ではなく、 1-項目番号 1-001 1-002 1-003 1-003 1-005 1-006 のようにならないでしょうか。
- NURU_osan
- ベストアンサー率50% (297/593)
Sub Macro1() '変数宣言 Dim Str0 As String Dim Str1 As String Dim I As Long Dim R0 As Long Dim R1 As Long '処理 For R0 = 1 To 100 Str0 = Cells(R0, 1).Value '重複数をカウント I=0 For R1 = 1 To R0 Str1=Cells(R1, 1).Value If Len(Str0)>Len(Str1) Then ElseIf Str0=Right(Str1, Len(Str0)) Then I = I + 1 End If Next R1 '記述 Cells(R0, 1).Value = I & "-" & Str0 Next R0 End Sub
お礼
CoalTarさん、有難うございます。希望通りでした!!!