ダブルコーテーションを全角に置換する方法

このQ&Aのポイント
  • Visual BasicのReplace関数を使用して、ダブルコーテーションを全角のダブルコーテーションに置換することができます。しかし、Replace関数内で半角のダブルコーテーションを使用するとコンパイルエラーが発生するため、代替の文字列を使用する必要があります。
  • 以下のマクロを使用することで、ダブルコーテーションを全角のダブルコーテーションに置換することができます。まず、InputBoxで入力を受け取り、Replace関数を使用して半角のダブルコーテーションを代替の文字列で置換します。そして、置換された文字列を出力します。
  • ただし、ファイル名には全角のダブルコーテーションを使用する必要があるため、最初からInputBoxに全角のダブルコーテーションを入力することはできません。代わりに、半角のダブルコーテーションを入力し、マクロ内で置換することで対応することができます。
回答を見る
  • ベストアンサー

ダブルコーテーションを全角に置換するには

InputBoxで入力した"を、Replace関数で”にしたいのですが、 Replace(str, """", "”")をすると、コンパイルエラーになります。 Sub macro() Dim str As String str = InputBox("文字を入れてください") Debug.Print Replace(str, """", "") End Sub というマクロを作りました。 画像のように、半角のダブルコーテーション「"」を入れたら、 Replace関数で全角のダブルコーテーション「”」に変えるにはどうすればいいでしょうか? 「最初からInputBoxに全角入れればいいやん!」 は、なしにしてください。 ファイル名を作っていて、ダブルコーテーションは全角でないとつけられないのです。

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

  • ベストアンサー
  • axuaxua
  • ベストアンサー率36% (82/223)
回答No.1

“(左ダブルクォーテーション)→Chr(&H8167) ”(右ダブルクォーテーション)→Chr(&H8168) Debug.Print Replace(str, """, Chr(&H8168)) でいいと思います(未検証)、ただし全て右ダブルクォーテーションになります。 ”“2種類使うならまた違う処理が必要になります。恐らく他の方が書くでしょう

HFBCYPIL7
質問者

お礼

さっそくのご回答ありがとうございます。 シフトキー+2を押してるので 右ダブルコーテーションになると思います。 Debug.Print Replace(str, """, Chr(&H8168)) をそっくりそのままvbe画面に貼り付けたらコンパイルエラーになってしまいます。 と思ったら、 Sub macro() Dim str As String str = InputBox("文字を入れてください") Debug.Print Replace(str, Chr(&H8168), "") End Sub これでイケました。

関連するQ&A

  • VBAの文字列の中に”(全角のダブルコーテーション)を使う

    VBAのStringの中に”(全角のダブルコーテーション)を使おうとしているのですが、VisualBasicEditorにより自動的に ""(半角のダブルコーテーション2つ)に変換されてしまいます。 Dim str as String str = "abc”def"    ↓ str = "abc""def" 文字列中に全角のダブルコーテーションを使う方法を教えてください。よろしくお願いします。

  • VBAで全角のダブルクォーテーションを削除

    VBAで全角のダブルクォーテーションを削除する関数を書きたいのですが、その方法が解りません。 VBEditorで全角クォーテーションを書いても、半角に変換されてしまいます。 Replaceなどで削除する場合、どのように書けばいいのでしょうか。

  • ダブルクォーテーションが置換できません

    いつもお世話になっております。 PHP初心者です。 シングルクォーテーションとダブルクォーテーションを文字列として入力したいと思い、以下のように記述しました。 -------------------------------------------------- $naiyo = $_POST['naiyo']; $search = array('\'','"'); $replace = array('\'\'','\"'); $naiyo2 = str_replace($search,$replace,$naiyo); -------------------------------------------------- シングルクォーテーションは置換された(文字列として表示された)のですが、ダブルクォーテーションは表示されず、ダブルクォーテーション以下の文字列が消えてしまいます。 置換ができていないというよりも、そもそもダブルクォーテーションが検索に引っかかってもいないようです。 どのようにすればダブルクォーテーションも置換できるか、お分かりの方がいらっしゃいましたらご教示ください。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • ダブルコーテーションの置換

    半角ダブルコーテーションを全角に置換したくて Replace(StrTemp, """", "”") としたんですが、うまくいきません。 第一引数の""""が問題なのかと思ったら、どうも後の"”"が問題みたい・・・ 試しに""”"としてみたら、VBのコードエディタに""""に直されてしまいました。 なぜなんでしょう?

  • ダブルコーテーション(

    str_replace関数にてダブルコーテーション(")を空白文字列に置換したいのですが、 どのような手法を取ればよろしいのでしょうか? str_replace(""", "", $file); ではないことは確認しているのですが。。 ご教授お願いします。

    • ベストアンサー
    • PHP
  • Replace関数について

    Sub macro1() Dim str As String str = "abc" str = Replace(str, "c", "a") MsgBox str End Sub このマクロを実行した時に、問題なく動くのですが なぜReplaceは関数なのに、 WorksheetFunction.がいらないのでしょうか? しかも Sub macro2() Dim str As String str = "abc" str = WorksheetFunction.Replace(str, "c", "a") MsgBox str End Sub にすると、エラーになります。 macro1のReplaceは、関数ではないのでしょうか? メソッドやステートメントですか?

  • 「ゞ」のみ置換するにはどうすればいいでしょう?

    「ゞ」を置換したいのに、 「ゞ」の次の文字まで置換されてしまう。 Sub test() Dim str会社名 As String str会社名 = "いすゞ自動車" Debug.Print Replace(str会社名, "ゞ", "ず") End Sub を実行すると 「ゞ自」が対象になってしまうのですが、 どうしてでしょうか? 「ゞ」は一文字ですよね? Replaceで「ゞ」のみ置換するにはどうすればいいでしょう?

  • CSVのダブルコーテーションを取りたい

    CSVファイルをDBに更新をかけたくてフィールドに分解したのですが、フィールドの中身を見るとダブルコーテーションで囲まれていました。 "123" "ABCD" このダブルコーテーションをとりたいのですがやり方がわかりません。 StrCnvFrom = ObjTS.ReadLine StrCnvTo = Replace(StrCnvFrom, """, "") Replaceを使って変えようとしましたが、エラーが出てできませんでした。 よろしくお願いします。

  • 半角の?を全角の?にVBAで置換する方法

    A1に「ありますか?」を入力して、 Sub test1() Range("a1").Value Replace(Range("a1").Value, "?", "?") End Sub なら、ハテナが全角になるのですが Sub test2() Range("a1").Replace What:="?", Replacement:="?", LookAt:=xlPart End Sub だと、??????になってしまいます。 前後のコードの関係で、test2の方法で置換したいのですが、どうすればいいでしょう? Replace関数ではなく、Replaceメソッドで?だけを全角にする方法を教えてください。

  • 半角カタカナのみ全角にするには

    http://bekkoame.okwave.jp/qa8426331.html を参考にvbaコードを作っています。 "あああイイイ"(「イイイ」のみ半角カタカナ) を "あああイイイ" にしたいのですが、 Sub Macro01() Dim str置換前 As String '置換前の文字列 Dim str置換後 As String '置換後の文字列 Dim i As Integer str置換前 = "あああイイイ" str置換後 = str置換前 For i = 31850 To 31936 str置換後 = Replace(str置換後, StrConv(Chr(-i), vbNarrow), Chr(-i)) Next i MsgBox str置換前 MsgBox str置換後 End Sub を実行すると、 「あああ」が全角カタカナになり、「アアアイイイ」になってしまいます。 For i = 31850 To 31936 の部分に原因があるのかな、とは思いますが、 For i = 31850 To 31936の意味がよくわからないままコピペで使ってしまいました。 多分文字コードの数値だと思うのですが、どう変更すれば、ひらがなは除外されますか? よろしくお願いします。

専門家に質問してみよう