Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8322 / 13644 ツリー ←次へ | 前へ→

【34012】MIDBステートメント からっぺ 06/1/24(火) 23:21 質問[未読]
【34013】Re:MIDBステートメント kobasan 06/1/24(火) 23:53 発言[未読]
【34015】Re:MIDBステートメント inoue 06/1/25(水) 0:21 発言[未読]
【34017】Re:MIDBステートメント ichinose 06/1/25(水) 6:28 発言[未読]
【34025】Re:MIDBステートメント からっぺ 06/1/25(水) 10:56 お礼[未読]

【34012】MIDBステートメント
質問  からっぺ  - 06/1/24(火) 23:21 -

引用なし
パスワード
   半角、全角、全角スペースがある文字列に他の文字を置き換えたいのですが、
置き換えの開始位置と置き換える文字の長さが、思いどうりになりません。
midb ステート教えてください。
たとえば「あ」 を 「**」に置き換えたい場合。

Sub Macro1() 
  
  Dim str01 As String
  str01 = "abcde あいうえお"
  MidB(str01, 8, 2) = "**"
  Cells(1, 1) = str01
  
End Sub

【34013】Re:MIDBステートメント
発言  kobasan  - 06/1/24(火) 23:53 -

引用なし
パスワード
   ▼からっぺ さん 今晩は。
>半角、全角、全角スペースがある文字列に他の文字を置き換えたいのですが、
>
>たとえば「あ」 を 「**」に置き換えたい場合。


'文字を置き換えたいのなら、midbを使わなくても、置換Replacementでできます。
'たとえば、"あ"を"**"に置き換えるのなら、これでできます。
Sub Macro1()
 
  Dim str01 As String
  str01 = "abcde あいうえお"
  'MidB(str01, 8, 2) = "**"
  Cells(1, 1) = str01
  Cells(1, 1).Replace What:="あ", Replacement:="**", LookAt:=xlPart, _
    SearchOrder:=xlByRows
End Sub

【34015】Re:MIDBステートメント
発言  inoue E-MAILWEB  - 06/1/25(水) 0:21 -

引用なし
パスワード
   こういうことでしょう。
Sub Macro2()
  Dim str01 As String
  Dim str02 As String
  str01 = "abcde あいうえお"
  str02 = StrConv(str01, vbFromUnicode)
  MidB(str02, 8, 2) = StrConv("**", vbFromUnicode)
  str01 = StrConv(str02, vbUnicode)
  Cells(1, 1) = str01
End Sub

通常は内部表現がUnicodeなので全て2バイト系なのです。
ここでは全角の「あ」を半角「**」には置き換えられません。
一旦Asciiコードにして、置き換えてから、
再度Unicodeに戻すという方法です。

【34017】Re:MIDBステートメント
発言  ichinose  - 06/1/25(水) 6:28 -

引用なし
パスワード
   おはようございます。


>半角、全角、全角スペースがある文字列に他の文字を置き換えたいのですが、
>置き換えの開始位置と置き換える文字の長さが、思いどうりになりません。
>midb ステート教えてください。
>たとえば「あ」 を 「**」に置き換えたい場合。
>
ワークシート関数「ReplaceB」を使用すると、
'=======================================================
Sub Macro3()
  Dim str01 As String
  str01 = "abcde あいうえお"
  Cells(1, 1).Value = WorksheetFunction.ReplaceB(str01, 8, 2, "**")
End Sub

試してみて下さい

【34025】Re:MIDBステートメント
お礼  からっぺ  - 06/1/25(水) 10:56 -

引用なし
パスワード
   みなさま ご回答ありがとうございました。


会社で使用している
既製販売ソフト(PCA商魂商管EX−V)のマスタファイルの内容修正に利用しようと考えていたのです。

その販売処理ではCSVファイルでデータが抽出できます。

ワークシートで REPLACEB() 関数で 決められたけた位置の内容を
修正していたのですが,

 今回「パッ!」と出来るVBA で 挑戦したのです。
ところが,思うような結果が得られず、3日悩んでいました。
(笑われそうですが、)

unicode,asci コードがあるんですね。 本当にみなさまありがとうございました。

これで、私の仕事の効率が上がるでしょう。
たぶん????

8322 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free