• ベストアンサー

アクセス2000で文字列に文字を挿入する方法。

InStr関数で、特定の文字(例えば、;)を探して、Mid関数を使って、その文字を特定の文字(例えば、【)に置き換えることには成功しました。 しかし、「;」を「【第」に置き換えようとすると必要なデータまで消してしまいます。「【」は置き換えでよいとしても、「第」は挿入する必要があるのですが、どのようなコードを使えばいいのでしょうか?

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

『moji』という変数が『AAA;BBB』とします。 『pot』を『;』を検索した位置とします。   Dim pot As Integer   pot = InStr(moji, ";")   moji = Left(moji, pot - 1) & "【第" & Right(moji, Len(moji) - pot) これで『AAA【第BBB』になるでしょう。 Left と Right で左右に分けて、中に "【第" を入れています。

patman2
質問者

お礼

できました! ありがとうございます。

関連するQ&A

  • 特定文字列の抽出

    VB6の質問です。 桁数、データが不定の文字列中から特定文字を抽出したいのでが、方法を教えていただけないでしょうか? 抽出したいデータの桁数が毎回不定でMid, Left, Right関数が使用できません。 Dim Buffer As String Buffer = "A12345...B678910.TRAGET..C" '桁数、データが不定の文字列がBufferに入ります。 例えば、変数Bufferから、桁数を考慮しないで"TARGET"の文字列を抽出したのです。 InStr関数で、位置を特定して、Mid関数などで抽出するれば、良いと思うのですが これをどんな桁数のときも対応できるようにルーチン化にできないでしょうか?

  • 文字列検索で

    よろしくお願いします。 文字列検索instr関数で、特定文字(スペース)でない文字を検索したいのですが、どのようにしたらいいですか? instr関数では、できないのでしょうか? たとえば、 文字列" osietegoo "  →  3 文字列"    situmon"  →  7 スペースでない文字が出現する位置を知りたいです。 instr(文字列,"o")ではなく、" "ではない、、、としたいのですが、できますか?

  • VB6.0 特定の文字列の取得方法

    環境:WINDOWS 2000 Visual Basic 6.0 (1)htmlファイルをInbutB関数で読み込み、変数AAAに代入 (2)Instr関数を使用して Instr(htmlが格納された変数,"<td")などと特定の文字位置を検索 (3)mid関数などで特定の文字位置から文字位置を抜き出す  例:mid(AAA,<TD>開始位置A,文字列開始位置B) 上記のようなことをやりたいと考えています。 今回困っていることは<TD>開始タグの文字位置の検索です。 <td valign="top" align="right" width="600"> width="600"のtd開始タグの位置を検索したいと思っています。 ファイルは複数あり、<td と width="600" の間に入っているものも異なり、またシンプルに<td width="600>というパターンも存在します。 こういった場合、どの用に特定の条件を満たした<TD>タグの位置を検索すればよいでしょうか?

  • テキストの文字列検索で、検索した文字の色を変える方法は?

    教えてください。 テキストボックスの内容を読み込んで、指定した文字列を検索するというコードを書いているのですが、 jl = InStr(i, Text2.Text) If (jl > 0) Then のように、テキストを一行ずつOpen~で読み込んで、Instrで指定した文字があるかどうかを判定しています。 これでは、検索した文字があったかどうか、という判定はできますが、検索あるいは置き換えした文字がどれであるか、またトータル何件あったかが分かりません。 検索ならば、一つずつ対象文字を発見したときにその文字の場所で止めて、またその文字の色を変える方法が分かりません。 また、置き換えならば、全文対象に一気に置き換えて、その置き換えた文字の色を変えて分かりやすくしたいのですが、その方法が分かりません。 検索あるいは置き換えの方法はマニュアルにあるのですが、その場所で止めて色を変えるというコードがなかなか載っていません。 どなたか教えてくださいませ。 お願いいたします。

  • アクセス2000のVBAで変数に係数をつける方法

    アクセス2000を使っています。 一つのレコード内に、下記のように、「半角4文字の番号+スペース」という規則正しいデータがあります。  ↓↓ 11A11 10A11 22B11 09A22 しかし、このデータの数は不規則で、番号が1個のものもあれば、20個のものもあります。  ↓↓ 11A11 11A11 10A11 22B11 09A22 ・・・ このデータ内にある半角4文字の番号を全て別々のデータにしたいと思い、VBAのコードを使って、InStr関数でスペースを検索し、そのスペースの手前から4文字のデータをleft関数やMid関数で抽出し、それを変数data(x)に代入し、次に、InStr関数で前のスペースの位置から次のスペースを探して、また、そのスペースの手前から4文字のデータをMid関数で抽出し、それを変数data(x)に代入する。 要するに、data(x) の中の x を1から1づつ増加させていき、data(1),data(2),data(3)という変数を自動的に生成し、その生成された各変数にデータを代入していきたいのですが、どうすればいいのでしょうか?

  • エクセルVBAで特定文字列の個数を高速に調べたい

    文字列の入っている変数内で特定の文字列(今回はvbCrLf)が何個発生しているかを、高速に調べたいのですが、どのような方法があるでしょうか? 現在以下のことをやっています。 数千件のテキストファイルから特定文字列を検索しています。 検索を高速化するために、テキストファイルをバイナリーモードで1つの変数に読み込み、instr関数で検索しています。 見つかった場合、その位置から前にあるvbCrLfをInStrRev関数で、後ろにあるvbCrLfをinstr関数で位置を調べ、元の変数からmid関数で該当ラインを取り出しています。 検索はこれで可能ですが、特定文字列を調べたinstr関数の戻り値がテキストファイルの先頭からの位置(何桁目)なので、検索した文字列が何行目にあるか分かりません。 変数の検索文字が見つかった位置までの部分でvbCrLfが何個発生しているかが分かれば行数が判定できます。 vbCrLfを調べるinstr関数を何回も繰り返せば行数の判定は可能ですが、もっと高速に(一つの関数・命令で)調べることはできないでしょうか? また他に行数を特定する良い方法があったら教えてください。 よろしくお願い申し上げます。

  • エクセル 特定の文字列を抽出・挿入

    例えば A列にあるセルの中から特定の文字列を検索・抽出して、その特定の文字列だけB列に挿入していく関数はありますか? またはA列にあるセルの中から特定の文字列に挟まれた文字列を検索・抽出してその特定の文字列だけB列に挿入していく関数はありますか? マクロを組まないと難しいのでしょうか?

  • VB6:テキストファイルから特定の文字列に続く数値を抜き取りたい

    お世話になっております。 Visual Basic 6にて テキストファイルaから特定の文字列に続く数値を 抜き取りたいと思っております。 テキストファイルaのパス: C:\a_file.txt テキストファイルaの内容: トヨタ自動車(株) (東証1部:7203),取引値15:00 4,100,1株配当45.00円 抜き取り後のテキストbの内容: 7203 15:00 4,100 45.00 抜き取り後のテキストファイルbのパス: C:\b_file.txt ”東証1部”の次、”取引値”の次、というように特定の文字列の後に抜き取りたい数値があるので、InStr関数やMid関数を用いればできるのではないかと思い。 以下のようにしてみました。 ---コード:ココカラ Set fs = CreateObject("Scripting.FileSystemObject") Set a = fs.CreateTextFile("C:\a_file.txt", True) Set b = fs.CreateTextFile("C:\b_file.txt", True) data = Mid(a.innerText, InStr(a.innerText, "1株配当") + 5, 7) b.Write (data) ---コード:ココマデ data = Mid(a.innerText。。。の行でエラーが出ます。 エラー内容:(実行時エラー438)オブジェクトはこのプロパティまたはメソッドをサポートしていません このエラーの部分を解決できれば、本問題解決への糸口になるのではと思っております。 すなはち、テキストaから特定文字列”東証1部”の位置検出、文字切り出しをまず解決したいと思っております。 どうぞよろしくお願いいたします。

  • 【ACCESS】文字列を抜き出したい

    初心者ですが。分かる方お願いいたします(__)(至急ですみません) 会社の専用システムからCSVデータをダウンロードしました。 その時点で、「商品コード」のフィールドが「"=0123456"」 のようなってしまっています。(「0123456」のように数字だけになっていてほしい) CSVの段階で、文字列関数を使用して数字だけにしてしまえばいいのですが、何万件とデータが重く、ファイルも複数あることから時間がかかってしまいます。 そこで、ACCESSにデータをインポートして加工しようとしましたが、どのようにすれば数字だけ抜き取ることができるでしょうか。 Right関数、left関数も考えましたが、商品コードの文字数が一定していないためできません。 インポートした時点で商品コードのフィールドがテキスト型にされていたので、数値型にすれば数字だけになるかな?と思ってやってみましたがデータがすべて失われてしまいました・・。 良い知恵をお貸しください。 どうぞよろしくお願いいたします。 それをACCESSにインポートしてテーブルを作成致しました。

  • MS-Accessで文字列の一部を抜き出したい

    MS-Accessで文字列の一部を抜き出したいのですが、テキストデータ(フィールド名はSample)「ABC-123 OKWAVE QUESTION ANSER 4567.txt」の"4567"を抜き出す方法を教えて下さい。MS-Access 2021 です。スペースの部分(Nullではありません。)が一か所だけならば Mid([Sample],InStr([Sample]," ")+1,InStrRev([Sample]," ")-InStr([Sample]," ")-1) でいけるように思うのですが、何か所にもスペースがあって、取得したいのは(.txt)という拡張子とその直前の (スペース)に挟まれた部分だけなのです。どうぞよろしくお願いいたします。

専門家に質問してみよう