VBAで正規表現を使って文字を抜き取りたい

このQ&Aのポイント
  • VBAを使用して文字列の中から特定のパターンに一致する部分を抽出したい場合、正規表現を活用することができます。
  • 具体的には、アルファベットと数字による10桁の連続した文字列を抜き出したい場合、正規表現パターンを使ってマッチングさせることで実現できます。
  • VBAのコード例として、ランダムな文字列が入った変数から正規表現を使用して目的の文字列を抜き出す方法を示します。
回答を見る
  • ベストアンサー

VBAで正規表現を使って文字を抜き取りたい

以下のような文字列があったとします あいうえおかきki990sks98くけこさし この中からki990sks98の部分のアルファベットと数字による10ケタの文字列を 抜き出したいとおもっております。 但し、対象の文字はランダムに変化します 例えば すせそ8ds8sjj9seなにぬねのは ひふへほまみむis987ss9s0めも ですので文字列の位置や左右に囲まれた文字列を指定して欲しい部分を取り出す事ができませんので 「アルファベットと数字を含むだけのものが連続して構成される10ケタの文字列」 という形で文字列を抜き取りたいのですが、どのようにしたらよいでしょうか? アドバイスをお願いします。 可能であればVBA用に 変数に上記のランダム文字列が入っている状態からの抜き取り作業コードも教えていただければ幸いです。(初心者なものでもうしわけありません) よろしくお願いします。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4846/10257)
回答No.1

まず、正規表現を使えるようにするために、VB Editorのツールメニューで、参照設定を選び、 Microsoft VBScript Regular Expressions 5.5 にチェックしてください。 あとは、こんな感じで。 Dim s As String Dim r As RegExp Dim m As Match s = "あいうえおかきki99seks98くけこさし" Set r = New RegExp r.Pattern = "[^A-Za-z0-9]([A-Za-z0-9]{10})[^A-Za-z0-9]" r.Global = True For Each m In r.Execute(s) Debug.Print m.SubMatches(0) Next

master817199
質問者

お礼

完璧に望み通りの物ができました。 感謝します、ありがとうございました。

関連するQ&A

  • PHP 正規表現による文字列の抜き出しについて

    PHP 正規表現による文字列の抜き出しについて 初歩的な質問で申し訳ありません。いくつかググったのですが、それでも自分の求める形を見つけられず質問させて頂きました。 「あいうえおかきくけこさいすせそ $abc12345678 $99999 たちつてと」 このような文字列の時に、 『$abcで始まって半角スペースで終わる所までの部分を抜き出す』には、 どのように記述すれば宜しいでしょうか。 (上記の文字列の場合は、「$abc12345678」を抜き出したいことになります。) よろしくお願いします。

    • ベストアンサー
    • PHP
  • 正規表現

    正規表現で次の文字列を認識する方法を教えてください 1. (000) (999) ()でくくられている3桁の数字。カッコを含みます 3桁の数字文字列だけなら'[0-9][0-9][0-9]' ?? 2. [あああ] (あああ) いあああ+ rあああ> 文字列'あああ'の前後の任意の文字、半角、全角両方OKを含む5文字 文字列がカッコの場合もあり

  • 正規表現について

    いま.Netで正規表現にチャレンジしているのですが、どこが問題なのか分からず、投稿させていただきました。 正規表現のパターンです。 \\[Cc]\[(?<$0>[0-9]+),(?<$1>[0-9]+),(?<$2>[0-9]+)\] で、マッチさせたい文字列は、 \C[255,255,255] です。「[255,255,255]」の数字の部分は、一桁から三桁までの数字であれば何でもOKです。 マッチしないことは、http://jsregex.com/を使って調べました。 どうぞよろしくお願いします。

  • JavaScriptで正規表現と置換

    タイトル通りのことをしたいのですがいまいち出来ないです。 変数 A00 = "かきくけこ"; 配列 x[0] = "あいうえおA00さしすせそ" ; 配列x[0]内の「Aと2桁の数字」を探し、該当する変数と置換する。 と言うことをしたいのです(つまりx[0] = "あいうえおかきくけこさしすせそ") x[0].match() で探すことは出来ますが .replace()の書き方が分かりません^^; どちら様か御教授よろしくお願いします。

  • 正規表現

    数字と大文字、小文字のアルファベットは入力OK。 記号も入力OK。でも、記号の中でも「”」、「.」は ダメ。しかも、10桁くらい入力できるようにする。 を表す正規表現は [a-zA-Z0-9&&[\"\.]]* と思ったのですが、 正しく表す正規表現はどの様なものになるのでしょうか? お願いします。

    • ベストアンサー
    • Java
  • 正規表現

    お世話になります。正規表現の質問です。 \w に当たる文字とハイフンに合致するが、少なくとも一文字はアルファベット(a-z)またはハイフン(-)が含まれていなければならない(つまり、数字だけの文字列は合致しない) という正規表現はどうあらわせばよいでしょうか。 以上、よろしくお願いします。

    • ベストアンサー
    • Perl
  • 【Excel】 文字の前後を入れ替えたい

      A                 B 1 《ABC》【あいう】ABCDE  【あいう】《ABC》ABCDE 2 《EFG》【えおかき】FGHI  【えおかき】《EFG》FGHI 3 《HIJK》【くけ】JKLMNO   【くけ】《HIJK》JKLMNO 4 《LM》【こさし】PQRS    【こさし】《LM》PQRS 5 《NOP》【すせ】TUVW    【すせ】《NOP》TUVW A列の文字列で 《***》と【***】を入れ替えて B列のようにするB列の式を教えて下さい。 9千行以上あります。 Excel 2007 です。 よろしくお願いします。

  • ランダムなアルファベットの文字列を覚える方法

    ランダムな数字の文字列を覚える方法だったら、 ネットで検索すれば、たくさん出てきますが、 ランダムなアルファベットの文字列を覚える方法は、 ネットで検索しても、出て来ない気がします。 ランダムなアルファベットの文字列を覚える方法は、 何か、ありませんか? そして、こういうことを、調べるには、 ネットで、どういうキーワードで、検索すれば、いいですか? 但し、英単語を覚えたいわけでは、ありません。 あくまでも、ランダムな文字列を、覚えたいのです。

  • PHPで正規表現でマッチした値を計算して元の位置に

    PHPで、あるテキストの中から条件にマッチした部分(今回は"["と"]"で囲まれた8桁の数字)を抽出してその値を計算した物を元の位置に戻すといった処理をしたいのですが可能でしょうか? 言葉では分かりづらいのですが、以下の例ような処理がしたいです。  あいうえおあい[11111111]、かき[22222222]、さしす[33333333] このテキストの中の8桁の数字それぞれにに2を掛けて...  あいうえおあい22222222、かき33333333、さしす66666666 というテキストに置き換えたいです。 数字部分はランダムなので、決めうちでの単純な文字列置き換えでは対応できません。 (数字部分を抽出する正規表現の書き方は分かります)

    • ベストアンサー
    • PHP
  • InDesign 正規表現 一桁の数字

    5(20.0%) 0(0.0%) 10(40.0%) こんな感じで一桁と二桁の数字が混じっている文字列の 一桁の数字の前に数字のスペースをつけて桁揃えしたいです 検索: (?<=[^\d\.])(\d)(?=\D) 置換: ~/$1 こんな感じで書いたんですがこれでは 文字列の一番最初のものが引っかかりません 「行頭または数字かドット以外に続く」 というのを表現できればいいのですが いろいろ試してもうまくいきません どう書けばいいのでしょうか

専門家に質問してみよう