電子書籍の厳選無料作品が豊富!

エクセルVBAについて質問いたします。

Sub test23()
Dim 文字列 As String
文字列 = "Aa"
Debug.Print Replace(文字列, "A", "b")
End Sub
を実行すると戻り値は、bbなのですが、大文字小文字を認識して置換する方法はありますか?

上記の例で例えるのなら、「A」なら「B」に置換したいので
「a」は、「A」ではないので、置換させたくないのです。

A 回答 (2件)

こんにちは。



質問のコードは無視します。
>例えるのなら、「A」なら「B」に置換したいので
文字列 ="Aa"
Replace(文字列, "A", "B", , , 0)

Ba
    • good
    • 0
この回答へのお礼

Replace 関数のヘルプを見たところ、
-----------------------------------------------------------------------
vbUseCompareOption -1 Option Compare ステートメントの設定を使用して比較を行います。
vbBinaryCompare 0 バイナリ モードで比較を行います。
vbTextCompare 1 テキスト モードで比較を行います。
vbDatabaseCompare 2 Microsoft Access の場合のみ有効。データベースに格納されている設定に基づいて比較を行います。
-----------------------------------------------------------------------
だったので、0を使うのですね。

ご回答ありがとうございました。

お礼日時:2012/10/22 23:52

>を実行すると戻り値は、bbなのですが、



戻り値というか、イミディエイトウィンドウに表示される内容のことですよね?
そのプログラムだけだと、
ba
ですよ。モジュールの前の方で、
Option Compare Text
と指定していませんか?その行を削除するか、
Option Compare Binary
を指定するか、
Debug.Print Replace(文字列, "A", "b", 1, -1, vbBinaryCompare)
としてください。
    • good
    • 0
この回答へのお礼

失礼しました。
イミティエイドウインドウに表示される値は、baでした。

Option Compare Textはやってません。
Debug.Print Replace(文字列, "A", "b", , , vbBinaryCompare)
にしたらうまく行きました。ご回答ありがとうございました。

お礼日時:2012/10/22 23:52

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