• ベストアンサー

変数内の文字列にある最後の「"」位置を調べたい。

変数myStrに格納されている文字列に幾つか含まれる文字「"」のうち、最後の「"」が文字列の何文字目に有るか出したいです。 InStr(1,myStr,""") 普通にInstrを使うと最初の文字位置を返してきます。 また「"」は"""になってしまいます。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

そのような場合InStrRev関数を使用するとよいでしょう Sub Macro1() Const wk As String = "ascdfagr"  MsgBox InStr(wk, "a")  MsgBox InStrRev(wk, "a") End Sub 試しに上のマクロを実行してみてください。 「a」を先頭から探した場合と、最後から探した場合に「先頭から何文字目に出現するか」を返します

popuran121
質問者

お礼

リバースで検索する関数も有るんですね。 これで最後の位置は出せます。 あとは「"」文字を InStrRev(myStr, """)と入れるとエラーになる点です。

関連するQ&A

  • 文字列のなかの最後の文字

    宣言した変数にファイルのパスが格納されています。 例: FileName = "C:\My Documents\test\test.txt" この文字列から "test.txt"のみを取り出したいのですが、どうしたら良いのでしょうか? 文字列の一番最後の"\"の位置番号を取得して、次の文字からMIDを使えばいいのかなと思ったのですが、"\"の位置を取得する方法すらわかりません。 もし上記の方法で無理なら代替方法でも構いません。 ちなみにこのパスは毎回違うパスが入ってきます。 よろしくお願いします。

  • 実行時エラー 14 文字列領域が不足しています。

    一度変数に格納した値を置換しようとしたら、 実行時エラー 14 文字列領域が不足しています。 となりました。 変数は、String型で宣言しています。 myStr = rs("回答文") myStr = Replace(myStr, Chr(10), "") のように、一度myStrに格納した変数の格納を取ろうと思い、 Replaceで置換しようとすると、エラーが発生します。 myStr = rs("回答文") で myStrに格納できた時点で、容量は足りているはずだし、 Replace(myStr, Chr(10), "")で置換することによって、更に容量を減らしているのに なぜエラーになるのでしょうか? アクセスvbaです。

  • 変数に入れた文字列をindexOfで解釈したい

    すみません、質問したいと思います。 自身のURLを参照して、それを変数に格納し、その文字列中にある #の位置をindex.Ofで解釈したいと思います。 なので、以下のようなjavaScriptを書いたのですが、うまくいきません。 なぜでしょう、よければ教えてください。 <script language=javascript> var loc = this.window.location; var sharp_pos = loc.indexOf("#");//#がなければ-1を返す document.write(loc); </script> 以上のものを実行したら、URL中の#の位置がブラウザ上で数字で 確認できると思ってたのですが・・・。 javascriptって、変数に格納した文字列は解釈できないのでしたっけ? perlだったら出来てたような気がしますが・・。 本を見たら、直接文字列をいじっているサンプルしかありませんでした。  "abcde".indexOf("c"); ⇒2を返す よろしくお願いします。

  • 文字列検索で

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

  • ある文字列で2回目3回目に出現するtabの位置を得るには?

    vbs初心者です。 ある文字列で2回目3回目に出現するtabの位置を得るにはどうすればよろしいのでしょうか? instrだと指定位置から最初にHITする位置しか得られないようなのですが、どなたかご教授願います。

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

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

  • 文字列(任意のURL)から、最後のファイルを削除し

    変数に、下記のような文字列(任意のURL)が格納されているとき、 http://www8.ghk.or.jp/nrws/hgml/20120924/k15515034581000.html 以下の文字列を取り出すにはどうすればよいでしょうか? http://www8.ghk.or.jp/nrws/hgml/20120924/ 欲しいのは、最後のファイルを削除した部分です。 (右から数えて、最初の/より右を削除)した文字列を取得したいです

    • ベストアンサー
    • PHP
  • エクセル 文字の振り分け

    すみません、教えて頂けますでしょうか。 VBAまたは関数で、1つのセル内にある文字を抽出して、 4つのセルにそれぞれ振り分けたいのですが、 RIGHT、MID、LEFT、FINDを組合せてもうまくできなくて困っています。 例えば1つのセルに、 A1 名前  :松下 小太郎(マツシタ コタロウ) A2 名前  :山田 佐吉(ヤマダ サキチ) のように入っていた場合に、別シート・同一シートのどちらでも良いので、    姓      名     フリ姓     フリ名 B1 松下  C1 小太郎  D1 マツシタ  E1 コタロウ B2 山田  C2 佐吉   D2 ヤマダ   E2 サキチ としたいのですが、松下小太郎が松下まで取り出せても、 名前の長さが変わると、 B2山田 佐 C2 吉 ヤ のようになったりしてしまいます。 VBAでは、 '購入者『姓』 '入力シート“購入者名”の値を変数に格納 myStr = Worksheets("入力シート").Range("B9").Value '変数から":"を検索して、右側を抜出して格納し直す myStr = Right(myStr, Len(myStr) - InStr(1, myStr, ":")) :のところまで左を削る myStr = LEFT(myStr, Len(myStr) - InStr(1, myStr, " ")) 左からスペースまで削る myStr = LEFT(myStr, Len(myStr) - InStr(1, myStr, " ")-1) ・・・・ のようにmyStrに入れた変数を再度削るという風に考えて やってみたのですが、できませんでした。 (上記コードはざっくりとこんな感じにしましたという イメージで書きましたので合っていません。) みなさま、お忙しい最中と思いますが、 何卒お力添えを頂けませんでしょうか? よろしくお願い致します。

  • 各変数に何文字格納できるのでしょうか?

    Dim myStr As Variant と Dim myStr As String では、 それぞれmyStrには何文字格納できるのでしょうか?

  • 変数に格納している文字列の読み込み

    ある変数($text)にHTMLデータが格納されています。 その変数内の文字列を、1行ずつ読み込む方法はあるのでしょうか。 $textをファイルに変換して読み込むべきでしょうか。 ぞ存知の方、ご教授をお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう