• ベストアンサー

Accessで文字列の一部を抽出する方法を教えてください。

Accessで文字列の一部を抽出する方法を教えてください。 下記の商品名から、[ ]でくくられた部分を抽出する関数があれば教えて頂きたいです。 よろしくお願いいたします。 ■ガラス|[ ceiling light/シーリングライト ]■

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

こんな感じでしょうか Function 抜き出し(ByVal 指定文字列 As String) As String Dim 正規表現, 一致集団, 一致要素 Set 正規表現 = CreateObject("VBScript.RegExp") 正規表現.Pattern = "\[(.*?)\]" Set 一致集団 = 正規表現.Execute(指定文字列) For Each 一致要素 In 一致集団     抜き出し = 一致要素.SubMatches.Item(0)     Exit For Next End Function

nico2kikuz
質問者

お礼

回答ありがとうございます。 正規表現について調べてみようと思います。

nico2kikuz
質問者

補足

関数を駆使して抽出する方法はないでしょうか?

その他の回答 (2)

noname#182251
noname#182251
回答No.3

#1です #2への補足で >関数を駆使して抽出する方法はないでしょうか? ですが、#2の回答は関数そのものです。それ以上に何をお望みなのか?

nico2kikuz
質問者

お礼

表現の仕方が悪くて申し訳ないです。 式ビルダで出てくる組み込み関数で何とかしたいと考えていました。 早々にご指摘ありがとうございます。

noname#182251
noname#182251
回答No.1

VBAで正規表現を使用すれば良いでしょう。VBAはほとんど知らないので、下記などをご参考に http://www.f3.dion.ne.jp/~element/msaccess/AcResSnippetRegExp.html その他、access regexp などで google検索すれば多数ヒットします。

nico2kikuz
質問者

お礼

回答ありがとうございます。 正規表現について調べてみます。

関連するQ&A

  • Excelで複数の文字列を抽出する方法

    Excel 2007で列に、[xxxA],[xxxB],[xxxC]... といった文字列があります。 例えば、この文字列の右端が、[A]か[B]で終わる文字列のみを抽出する方法をご教授ください。 一つの文字列であれば、RIGHT関数で抽出できたのですが、2つ以上の抽出方法が判りません。 どうぞよろしくお願いいたします。

  • EXCELで 「○○でない」抽出(文字列)

    従業員コードからRIGHT関数を使用して「00」(文字列)を抽出しました。 ところが全社員の中から 「00」でない と抽出しようとしたところうまく抽出できません。 「00」である と抽出するのはうまくできます。 何か理由があるのでしょうか?

  • ACCESS 文字の抽出方法

    ACCESS2000で開発しています。 簡単なことだと思うのですが、ある文字列のなかから"/"以外の文字を抽出するにはどうすればよいですか? 例)年月日 テキスト ”2008/06/23”               ↓            ”20080623” LEFT関数やMID関数でできるのですが、できれば上記の方法でやりたいと思っています。 よろしくお願いします。

  • 指定した文字列が抽出できる関数

    Excelで、指定した文字列だけを抽出表示する場合、「文字列を先頭(左)から抽出する」などの関数は「LEFT関数」や「RIGHT関数」がありますが、位置の指定ではなく、文字列の中にある、特定の文字だけを指定して抽出してできる関数は何でしょうか? たとえば「ラーメン」「うどん」「そば」いずれかを「含む」文字列が入っているセルの中から、「うどん」のセルだけを抽出して表示するという場合です。

  • 文字列の抽出方法について

    アクセス2000を使っています。 D:\test\image\image.bmp 上記したようなファイル名のフルパスから、下記のようにフォルダ名のみを取り出したいのですがうまくいきません。  D:\test\image\ InStr関数で"\"の位置を抽出して、left関数で抽出した位置より左側のデータを取り出そうと思ったのですが、InStr関数では、最初に見つかった"\"の位置を抽出してしまうため、left関数で取り出した値が下記のようになってしまい、正確なデータが取り出せません。どうしたらいいでしょうか?  d:\

  • Access クエリ 文字列の一部を抽出して表示

    Access クエリの 文字列の一部だけの抽出についてお尋ねします。 Accessクエリにて、『配達先』フィールドの文字列が長いため、『配達先』フィールドの一部の文字を抽出してクエリに表示したいのですが、どのようにすればよろしいでしょうか? 抽出前 ⇒ 抽出後の順で記載します。 (1):営業部○○課消耗品置き場 ⇒ ○○課 ※○○課消耗品置き場で終わる文字列の場合は、営業部の1字後ろから消の1字手前までを抽出する (2):営業部○○課消耗品置き場(△△係)⇒ △△係 ※○○課消耗品置き場の後に()がある場合は、()の中の文字列だけを抽出 (3):営業部◇F○○課消耗品置き場 ⇒ ○○課 営業部◇F○○課(△△係)⇒ △△係 ※○○課の前に◇F(フロア)がある場合は、◇Fの後ろから(1)か(2)を適用する お分かりの方がいらっしゃいましたら、ご回答のほどよろしくお願い申し上げます。

  • 特定文字列の抽出

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

  • 文字列の抽出(excel、関数)

      A            B  (元情報)       (商品名) 1 新規○○○yy/mm     ○○○ 2 追加○○○○yy/mm    ○○○○ とA列に情報が入っています。 それをB列に○・・・○と文字数が決まっていない部分だけを 抽出したいのですが、どのようにしたらいいのでしょうか? ※新規、追加等最初の文字は2文字と決まっています。 ※後ろのyy/mmもこの形式に決まっています。 前後の文字数は決まっていますが、今後他の場合にも備えたいので、 文字数が決まっていても、決まっていなくても、応用の利く関数を教えて欲しいと思います。 VBA等難しいのは分からないので、 関数を使って出来たらいいと思います。 よろしくお願いします。

  • Excelで文字列を抽出したい。

    Excelで文字列を抽出したい。 Excelで商品コード一覧を作成しました。 商品コード ABC230 DE120 ABC333 XU203 の様にアルファベット+数値で構成されています。 このアルファベットの部分のみを抜き出したいと考えています。 アルファベットの文字数はバラバラです。 何か便利な関数などありましたら、アドバイスよろしくお願いいたします。

  • Excelでの文字列抽出

    Excelで文字列の抽出とそれを並べる方法を教えてください。 関数だけを用いて実現できるのか、マクロを使わなければできないのかも分かりません。 この関数をこの様に使えばよいというのを教えていただけると幸いです。 やりたいことは、下記条件で、シート2のB列にシート1のG列~P列までに登録されている担当者名に該当するB列の店名を4店まで抽出したいのです。 分かりづらくて申し訳ございませんが、よろしくお願い致します。 ------------------------ シートが2枚(シート1/シート2)あります。 シート1  B列は4行毎に結合されており、店名が登録されています。  G列~P列までは1行目は担当者名、2,3,4行目は補足情報が登録されています。  シート2  A列に担当者名が入っています。(4行毎に結合しています)  B列にA列の担当者名に該当する、シート1の店名を4店まで登録したい。