• ベストアンサー

Excel 2013 文字列内の文字重複削除

Windows 7 の Excel 2013 を使用しています。 例として以下のA1からA3セル内文字 abcabcef aaabbbeee xabababy がB1からB3セル内文字 abcef abe xaby のように重複する文字を削除しその他を残すような変換はどうしたら良いのでしょうか? 対象変換数は1000件くらいはあります。 関数やマクロがわからない初心者です。 よろしくお願いいたします。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

簡単なユーザ関数を作ってみました。 標準モジュールに以下のコードを入れて、B1セルに =fSample(A1) の様に 設定してください。 Function fSample(sStr1 As String) As String   Do     sOne = Left(sStr1, 1)     sStr2 = sStr2 & sOne     sStr1 = Replace(sStr1, sOne, "")   Loop While sStr1 <> ""   fSample = sStr2 End Function

kzk3011
質問者

お礼

たいへん迅速なご回答をありがとうございました。 問題なく実行できました。 ベストアンサーとさせていただきました。 今後ともよろしくお願いいたします。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 一例です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, k As Long, str As String, buf As String For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row For k = 1 To Len(Cells(i, "A")) str = Mid(Cells(i, "A"), k, 1) If InStr(buf, str) = 0 Then buf = buf & str End If Next k Cells(i, "B") = buf buf = "" Next i End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m

kzk3011
質問者

お礼

迅速なご回答をありがとうございました。 実行方法の詳細もありがとうございます。 問題なく実行できました。 申し訳ありませんが、回答が早かった方をベストアンサーとしました。 今後ともよろしくお願いいたします。

関連するQ&A