• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Mid関数を使って置換)

Mid関数を使って文字列置換

このQ&Aのポイント
  • Mid関数を使って指定された文字数の置換を行う方法について教えてください。
  • byte数を指定して文字列の置換を行いたい場合、どのような方法を取ればよいでしょうか?
  • 全角、半角の混在した文字列を対象に置換を行う場合、どのようなコードを使用すれば良いでしょうか?

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

  • ベストアンサー
回答No.1

これでどうでしょうか Sub test() Dim str As String str = "123456789" str = StrConv(str, vbFromUnicode) MidB(str, 3, 2) = StrConv("AA", vbFromUnicode) str = StrConv(str, vbUnicode) Debug.Print str End Sub

investyou
質問者

お礼

回答ありがとうございます。 そうか何も一度に記述する必要ないですね。納得です。 このまま関数にまとめて使わせていただきます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ACCESS97 : レコードが長いファイルのインポートについて

    ACCESS97で、文字列を文字数ではなくバイト数で扱うことは可能でしょうか。 1レコードが20,000ByteあるテキストファイルをACCESS97のテーブルに インポートしようとしています。 インポート先のテーブルのフィールドをすべて「メモ型」にしたのですが、 インポート定義を利用してインポートを行おうとすると、 「レコードが大きすぎます。」というエラーが発生します。 そこで、プログラムでファイルを1レコードずつ読み込みながらテーブルに インサートしていく方法を取ろうかと思います。 テキストファイルは半角と全角が混在しているのですが、困ったことに 全角のデータが入るべきところに半角が混ざっている可能性があります。 たとえば、全角10文字入るべき場所に半角の空白が20文字入っていると いうような状態です。 この状態で StrConv関数でUnicodeに変換してからMidB$関数で文字を抜き 出すと、フィールドがずれてきます。 1文字目から10文字分、ではなく1Byte目から10Byte、などというように文 字列を扱うことができれば、全角と半角がどのような位置で混在していても 関係なくプログラム上で扱うことができると思うのですが,方法がわかりません。 また、これ以外で長いレコードのファイルをインポートできる方法があれば 教えていただきたいと思います。 長くなってしまいましたが、ご回答をいただけますようよろしくお願いいたします。

  • Excel2000で置換>全角数字を半角数字へ

    表記置換方法についてご教授ください。 ある列に文字列と全角数字が混在したセルが数百行あります これを半角数字に置換したいのですが希望通りにできません。よい方法をご存知の方ご教授願います 変換した内容 (TEL)03-9999-9999  ⇒ 03-9999-9999 半角 全角数字(実際には電話番号)  半角数字  やったこと 置換機能にてまず行頭の(TEL) を削除 置換にて0(全角)→0(半角) これを0~9まで10回繰り返し これを一度の置換で実行させたい 置換前の文字指定と置換後の文字を正しく指定する方法はないでしょうか?

  • 半角全角区別しない場合の置換

    エクセルvbaで Cells.Replace What:=str置換前, Replacement:=str置換後, LookAt:=xlPart のように置換するときに 半角でも全角でも置換できるようにするにはどうすればいいですか? Replaceにカーソルを当てF1を押すと ライブラリでVBAとExcelのヘルプがありますが どちらを見ても、半角全角区別しない場合の書き方は書いてなかったため わかりませんでした。

  • VBA(Excel2003)で文字列の切り出し

    下のプロシージャーで全角半角混じりの文字列を切り出し、別の文字列で結合しようと思いますがうまくいく場合といかない場合があります。 イミディエイト・ウィンドウ上とCell上で動作が違います。 Cell上でうまく表示させるにはどうしたらいいでしょうか? Sub Test() Dim myString(2) As String Dim i As Integer myString(0) = "airueo" myString(1) = "かきくけこ" myString(2) = "さシすせそ" For i = 0 To 2 Debug.Print MidMbcs(myString(i), 1, 5) & "...テスト" Cells(i + 1, 1).Value = MidMbcs(myString(i), 1, 5) & "...テスト" Next i End Sub Function LenMbcs(ByVal str As String) LenMbcs = LenB(StrConv(str, vbFromUnicode)) End Function Function MidMbcs(ByVal str As String, start, length) MidMbcs = StrConv(MidB(StrConv(str, vbFromUnicode), start, length), vbUnicode) End Function

  • 置換の順番について

    置換する目的は 半角カナを全角カナにする事なのですが、そこで問題が生まれました。 sjisに変換した後に、置換をすると文字化けになり、反対にする事によって正常に置換する様になっています。良くそこの仕組みが分からないのですがどうか教えて頂けないでしょうか?宜しくお願いします。 ###参照プログラム### ★#半角文字を全角文字に置換するケース &jcode::h2z_sjis(\$value); &jcode::convert(*value, 'sjis'); ★#文字化けを起こすケース &jcode::convert(\$value, 'sjis'); &jcode::convert(\$str, 'euc'); print "str : $str<br>\n";

  • wordのワイルドカードを使った置換について

    word2007でワイルドカードを使った置換をしたいと思いますが、うまくいきません。 数字の前の全角空白を半角空白にしたいと思います。、数字は全て半角です。 ○全角空白 △半角空白として 「第○1章」を「第△1章」と置換したいと思います。 置換で検索する文字列に 「○([0-9])」 置換後の文字列       「△\1」 と指定すると、置換後の結果は 「第1△章」 となります。 どうしてでしょうか。 どのように指定すればよいのかお教えください。 インストールしているアプリと関係があるということはあるでしょうか。そんなに複雑な使い方はしていませんが…… よろしくお願いいたします。

  • 指定バイト目を取り出すにはどうすればよいでしょうか?

    変数Aに、全角半角交じりの文字列が入っているのですが、 Mid、MidBでは指定バイト目の文字を取り出すことが出来ません。 上手く取り出すほう方はありますでしょうか? ご回答、宜しくお願い致します。

  • ワードのワイルドカードを使った置換について

    ワードでワイルドカードを使って置換をしたいのですが、うまくいきません。 数字の前の全角スペースを半角スペースに変えたいのです。 置換でワイルドカードを使用するにチェックを入れ、 検索する文字列は「全角スペース[0-9]」 置換後の文字列は「半角スペース\1」 として実行してみたのですが、 〔置換後の文字列〕に指定できない範囲の番号が含まれています というメッセージが出ます。 全角スペース[0-9]はきちんと認識しているようで、検索まではうまくいっているようですが、 置換後の指定の仕方が悪いようなのです。 お教えいただければと思います。 よろしくお願いいたします。

  • Wordで半角を全角に置換した部分を色づけしたい

    Word2000を使用しています。 文章中に半角と全角文字が混在しているので、半角文字を全角に統一したいと思います。「文字種の変換」で半角を全角に変換できますが、変換した部分を 着色してわかるようにすることはできないのでしょうか。 例えば、 「千代田区1-2-3 abcホール」を 「千代田区1-2-3 abcホール」 と変換したい。(『1-2-3 abcホール』の部分を着色) 個々の文字は「置換」で文字を指定すれば、「書式」で色をつけることができるのはわかったのですが、いちいち、文字を指定するのは大変です。いろいろ試したのですが、やはりこれはできないのでしょうか。

  • 全角 「―」 は、どうやって半角 「-」 に置換するのですか???

    全角マイナス(―) を半角(-) に置換したいのですが うまくいきません。 $str ='ABCD―EFG'; $str =~ s/―/-/g; × 実行ストップ $str =~ s/\―/-/g; × 同じく $str =~ s/\―/\-/g; × 一文字ごとに - が入る 'ABCD-EFG' print してこう出てくれば 理想なのです。どうかよろしくお願いします。m(__)m

    • ベストアンサー
    • Perl