- ベストアンサー
VBAを使った置換
前回こちらで回答いただきその後自分でも考えてみたのですがどうしてもわからなかったので、もう一度皆様のお力をお借りできればと思います。よろしくお願いします。 変換条件 ・項目部分は<font color="#008080"></font>で囲みます ・カタカナ、英数字はすべて半角に変換します (ここでは半角が表示されていませんが変換後は半角です) ・株式会社、社団法人は(株)、(社)に変換します ・必要のない項目は削除します(必要のない項目=●項目3) 【変換前エクセルデータ】 A B C 1 ●項目1 : サンプル1です 2 ●項目2 : テスト株式会社 3 ●項目3 : 必要のない内容 4 ●項目4 : 文章があります 【変換後のデータ】 <font color="#008080">●項目1:</font>サンプル1です<br /><br /> <font color="#008080">●項目2:</font>テスト(株)<br /><br /> <font color="#008080">●項目4:</font>文章があります<br /><br />
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> 前回こちらで回答いただきその後自分でも考えてみたのですがどうしてもわからなかったので~ 考えていないでやって見た方が覚えるのも早いですよ。(^.^) Sub SAMPLE() Dim sht As Worksheet Dim r As Integer Dim s As String Dim l As Integer Set sht = Sheet1 r = 1 With sht Do Until sht.Cells(r, 1).Value = "" s = Cells(r, 1) l = InStr(s, "●項目3") If l = 0 Then l = InStr(s, "●") s = Mid(s, l + 1, 255) & Cells(r, 2) & Cells(r, 3) s = Replace(s, "株式会社", "(株)") s = StrConv(s, vbNarrow) Debug.Print s End If r = r + 1 Loop End With Set sht = Nothing End Sub 不足している部分は、ソースを真似すればよいだけなのでお後は自力で宜しくお願いします。
その他の回答 (2)
#2です、間違いました、ごめんなさい、訂正します。 D1の数式 ="<font color=""#008080"">" & ASC(A1) & ":</font>" & SUBSTITUTE(SUBSTITUTE(ASC(C1),"株式会社","(株)"),"社団法人","(社)") & "<br /><br />" D2の数式 ="<font color=""#008080"">" & ASC(A2) & ":</font>" & SUBSTITUTE(SUBSTITUTE(ASC(C2),"株式会社","(株)"),"社団法人","(社)") & "<br /><br />" D3の数式 ="<font color=""#008080"">" & ASC(A4) & ":</font>" & SUBSTITUTE(SUBSTITUTE(ASC(C4),"株式会社","(株)"),"社団法人","(社)") & "<br /><br />"
お礼
venzoさん、何度も教えていただきありがとうございました。 こちらのほうでもしっかりと変換できました。 VBAだけでなくいろんな方法でできることがわかりました。 最後の最後までご付き合い頂き感謝しております。 本当にありがとうございました。
こんにちは、前回も回答した者です。 データの位置が変わりましたね。 VBAの回答は出てますので、数式を使う回答です。 D1の数式 ="<font color=""#008080"">" & MID(A1,2,LEN(A1)) & ":</font>" & SUBSTITUTE(SUBSTITUTE(ASC(C1),"株式会社","(株)"),"社団法人","(社)") & "<br /><br />" D2の数式 ="<font color=""#008080"">" & MID(A2,2,LEN(A2)) & ":</font>" & SUBSTITUTE(SUBSTITUTE(ASC(C2),"株式会社","(株)"),"社団法人","(社)") & "<br /><br />" D3の数式 ="<font color=""#008080"">" & MID(A4,2,LEN(A4)) & ":</font>" & SUBSTITUTE(SUBSTITUTE(ASC(C4),"株式会社","(株)"),"社団法人","(社)") & "<br /><br />"
お礼
本当にありがとうございました。 今回のことでマクロの実行がイミディエイトウインドゥに表示されること、Replaceが置換する関数であること等がわかりました。 よく質問でもっと調べてから聞けとか自分で考えろとか言われます。 確かにその通りな部分はあると思います。しかしmiyuyuさんの >考えていないでやって見た方が覚えるのも早いですよ。(^.^) の一言はうれしかったです。いつか私もアドバイスできるよう日々覚えていこうと思います。 ありがとうございました。