アプリ版:「スタンプのみでお礼する」機能のリリースについて

ユーザーフォームのテキストボックスに「(株)OK商事」と入力すると、エクセルシートには「カOK商事」と表示したいと思っています。(株)の3文字を「カ」の1文字に置き換えることができません。Mid関数を使って、Mid(文字列, i, 3)で(株)を拾った時にflag=trueにして、変換後文字 = Mid(文字列, 1, i - 1) & "(株)" & Mid(文字列, i + 3, i)としてみたのですが、表示は(株カのようになってしまいます。何かいい方法はないでしょうか?便利な関数が他にあるのでしょうか。超初心者なので、できるだけ詳しく教えて頂けますか?よろしくお願い致します。

A 回答 (3件)

セルならこの式でできました


B3に(株)OK商事
(株)でも(株)でも両方対応するようにor文で対応させました
ちなみに必ず文頭に(株)が来ると仮定できるのならLEFT文が良いと思います
Mid文ならMid(文字列,1,3)です
iを代入している部分が間違っているようです
=IF(OR(LEFT(B3,3)="(株)",LEFT(B3,3)="(株)"),"カ"&MID(B3,4,LEN(B3)),B3)
もしかしたらマクロ分ではLenはそのままでは使えなくてApplication.lenとしないとダメだったかもしれません
参考にしてください
    • good
    • 0
この回答へのお礼

必ず頭に(株)ではなくて、余計に頭がこんがらがっています。この場合だと、必ず前株なんですよね・・・もっと勉強します。ありがとうございました。

お礼日時:2003/02/01 01:07

途中まで具体的なコードを示していただければ、確実なのですが…


たぶん
変換後文字=Left(文字列, i - 1) & "カ" & Mid(文字列, i + 3, Len(文字列))
でokでしょうか?

ちなみにこれは、下記のようなコードを想定しております。

  Dim 文字列,変換後文字 As String
  Dim i As Long
  '文字列=テキストボックスの値
  For i = 1 To Len(文字列)
    If Mid(文字列, i, 3) = "(株)" Then
      変換後文字 = Left(文字列, i - 1) & "カ" & Mid(文字列, i + 3, Len(文字列))
    End If
  Next i
    • good
    • 0
この回答へのお礼

ありがとうございます。試してみたのですが、文字が表示されません。(*引数に文字列を入れて、Range("A1").Value=株変換(文字列)というコードがあるという想定です。)
エラー表示もなく、何が悪いのか、???です。でも、wildcardさんのおかげでMid関数を覚えることができました。これからもよろしくお願い致します。

お礼日時:2003/02/01 01:03

色々な方法が考えられますが、『Application.Substitute』はどうでしょうか・・・



『(株)』と『カ』は全角か半角かよく分からないので、ご自分で決めてください。


Function KabuOkikae(moji As String)
  KabuOkikae = Application.Substitute(moji, "(株)", "カ")
End Function
    • good
    • 0
この回答へのお礼

ありがとうございました!おかげでカンタンに出来てしまって、感激です。エクセル関数は使えないと思ってたので、勉強になりました。ずっと
KabuOkikae = Substitute(moji, "(株)", "カ")
書いてて、エラーになり、駄目なんだと思って、別のやり方を模索してました。Applicationを使えばいいんですね。これからも色々幅が広がりそうです。これからもよろしくお願いします。

お礼日時:2003/01/31 13:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!