• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelで頭に文字をマクロで加える)

Excelで頭に文字をマクロで加える

このQ&Aのポイント
  • Excelで頭に文字をマクロで加える方法について質問です。
  • 現在、次のVBAを使用してセルの値の前に文字を追加していますが、いくつかの問題があります。
  • セルがブランクの場合にも文字が追加されてしまったり、ダブリの文字がある場合には文字がダブリの数だけ追加されてしまいます。修正すればよい方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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 繰り返しに条件分岐を混ぜればよいと思います

yukisaka
質問者

お礼

CoalTarさん、有難うございます。希望通りでした!!!

その他の回答 (2)

  • NURU_osan
  • ベストアンサー率50% (297/593)
回答No.2

失礼、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

yukisaka
質問者

お礼

NURU_osanさん、有難うございます。勉強がてら自分なりに手を加えて試行してみたいと思います。

yukisaka
質問者

補足

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)
回答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   '重複数をカウント   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

関連するQ&A