- ベストアンサー
VBA でセルの文字列に"-"等の文字を挿入したい
VBA でセルの文字列に"-"等の文字を挿入したい エクセルでA列に品番がずらっと並んでいる状態です。 この品番がすべて"-"が抜けています。 頭から5文字目の後ろに"-"を挿入したいのですがどのようにすればよいでしょうか? 例 55548855→55548-55 また 55548-55→55548855 のように"-"を抜く方もわかれば教えてください。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
対象のセル範囲を選んで実行します。 Sub InsertMinus() Dim h As Range For Each h In Selection h = Application.Replace(h.Value, 6, 0, "-") Next End Sub Sub RemoveMinus() Dim h As Range For Each h In Selection h = Application.Replace(h.Value, 6, 1, "") Next End Sub
その他の回答 (3)
- KURUMITO
- ベストアンサー率42% (1835/4283)
A1セルにお示しの数値があるとして B1セルに答えを表示させるとしたら Range("B1").Formula="=REPLACE(A1,6,1,"-")" または Range("B1").Formula="=REPLACE(A1,6,1,MID(A1,5,1))"
お礼
ありがとうございます。 ただ、"-"を抜く方はよかったのですが、 入れる方はエラーが出てうまくいきませんでした。 ありがとうございました。
- watabe007
- ベストアンサー率62% (476/760)
>頭から5文字目の後ろに"-"を挿入したいのですがどのようにすればよいでしょうか? v = Range("A1", Cells(Rows.Count, "A").End(xlUp)) For i = 1 To UBound(v) v(i, 1) = Left(v(i, 1), 5) & "-" & Mid(v(i, 1), 6) Next Range("A1").Resize(UBound(v)).Value = v >"-"を抜く方もわかれば教えてください。 With Range("A1", Cells(Rows.Count, "A").End(xlUp)) .Replace What:="-", Replacement:="" End With
お礼
ありがとうございます。 "-"を入れる方はよかったのですが、 抜く方で、 "1741064300-70"のようにもともと"-"が入っているものを "17410-64300-70"としてその後また"-"を抜くときに全部抜けてしまいました。 私の説明不足でした。申し訳ありません。 でも、これはこれで役に立つと思いますので 大変感謝しております。 ありがとうございました。
- chuchuo
- ベストアンサー率45% (99/217)
一例です。 55548855→55548-55 str1 = "55548855" str2 = left(str1,5) str3 = right(str1,2) str4 = str2 & "-" & str3 55548-55→55548855 str1 = "55548-55" str4 = replace (str1,"-","8")
お礼
早速のお返事ありがとうございます。 ただ、教えていただいたものを subとendで囲んでもうまくいきませんでした。 初心者の私には何がまずいのかよくわかりませんでした。 申し訳ありません。 ありがとうございました。
お礼
ありがとうございます。 まさに私の欲しかったものです。 初心者の私にも理解しやすい作りです。 勉強になりました。 どうもありがとうございました。