No.5ベストアンサー
- 回答日時:
「プロジェクト」-「参照の追加」-「COM」で
Microsoft VBScript Regular Expressions 5.5
を選択してOK。
コマンドボタン3での実行できたコード。
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim re As New VBScript_RegExp_55.RegExp
Dim matchs As VBScript_RegExp_55.MatchCollection
Dim matchstr As VBScript_RegExp_55.Match
'Dim submatch As VBScript_RegExp_55.SubMatches
Dim v() As String, x() As String
Dim i As Integer
ReDim v(0 To 4), x(0 To 4)
v(0) = "abc012()_001t"
v(1) = "abc3()_2t"
v(2) = "abc5()_3t"
v(3) = "abc6()_4t"
v(4) = "abc7()_5t"
re.Pattern = "\D*(\d+)\D*"
re.Global = True
For i = 0 To UBound(v)
If re.Test(v(i)) = True Then
matchs = re.Execute(v(i))
For Each matchstr In matchs
x(i) = x(i) & matchstr.SubMatches.Item(0)
Next
Debug.Print(v(i) & " " & x(i))
End If
Next
End Sub
初めの宣言方法も違うようですね。
> ReDim v(0 To 4), x(0 To 4)
配列は0からのようです。
(なんせ2005は初めたばかりで。ExcelVBAならよくやってますけど)
ご参考になれば。
お礼が遅れてすみません。
わざわざ、実行までして確かめてくれたんですね。。申し訳ないです。。
とても助かりました!ありがとうございます!!
No.4
- 回答日時:
VB6.0で参考URLの参照設定を行なった後で、
コマンドボタンを押すとイミディエイトウィンドウに書き出してる
サンプルです。
Private Sub Command1_Click()
Dim re As New RegExp
Dim matchs As MatchCollection
Dim matchstr As Match
Dim submatch As SubMatches
Dim v() As String, x() As String
Dim i As Integer
ReDim v(1 To 5), x(1 To 5)
v(1) = "abc012()_001t"
v(2) = "abc3()_2t"
v(3) = "abc5()_3t"
v(4) = "abc6()_4t"
v(5) = "abc7()_5t"
re.Pattern = "\D*(\d+)\D*"
re.Global = True
For i = 1 To UBound(v)
If re.Test(v(i)) = True Then
Set matchs = re.Execute(v(i))
For Each matchstr In matchs
Set submatch = matchstr.SubMatches
x(i) = x(i) & submatch.Item(0)
Next
Debug.Print v(i), x(i)
End If
Next
End Sub
ご参考になれば。
この回答への補足
回答ありがとうございます。
しかし、実はVB2005を扱っているんです。
なので、いただいたプログラムが正しく動きませんでした。
VB2005で実行するとするとどうプログラムすればよいのでしょうか?
何度もすみません。。。
No.2
- 回答日時:
ところで数値だとすると、
>"0k,abc,5k,abc3.0" → 0530
この場合は530になってしまいますが。
数字(文字列)の事ですか?
この回答への補足
数値だと、0530は530になってしまうんですね。誤算でした。
ご指摘ありがとうございます。
ちなみに僕が何でこんなことをしているのか簡単に説明しますと・・
実は今ソートのプログラムを作っているのですが、2種類のソートの仕方を実行しないといけなくて、その前処理として抽出プログラムを作ろうとしているんです。
(1)単に数値で昇順に並び替える
"abc()_3t" → 3
"abc()_5t" → 5
"abc()_2t" → 2
"abc()_1t" → 1
を、抽出した数値をもとに以下のように並び替える。
"abc()_1t"
"abc()_2t"
"abc()_3t"
"abc()_5t"
(2)0k..5k→5k..0k→0k..5k→5k..0k、のように連続する項の終わりの数値と最初の数値をくっつけるように並び替え。(abc3.0は無視するようにする。)
"0k,abc,5k,abc3.0" → 05
"0k,abc,5k,abc3.0" → 05
"5k,abc,0k,abc3.0" → 50
"5k,abc,0k,abc3.0" → 50
を、抽出した”数?”をもとに以下のように並び替える。
"0k,abc,5k,abc3.0"
"5k,abc,0k,abc3.0"
"0k,abc,5k,abc3.0"
"5k,abc,0k,abc3.0"
No.1
- 回答日時:
この回答への補足
回答、ありがとうございます。
しかし、実は僕はまだVB初心者なためか、参照ページを理解しきれませんでした。
お時間がありましたら、具体的に参考プログラム等、ヒントをいただけませんか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル関数について 8 2023/06/28 17:04
- Excel(エクセル) エクセルで重複データから重複を削除して指定の列に抽出したい 11 2022/05/11 11:26
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- PostgreSQL 数値が定期的にあらわれる文字列から、いくつめに出現した数値が指定して切り出したい 1 2023/06/08 13:12
- Excel(エクセル) SUMIF関数について 4 2023/06/14 13:13
- Excel(エクセル) Excelの関数についておしえてください。 3 2023/04/20 18:36
- Java Java 南京錠 2 2023/02/04 11:46
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現の否定先読みで、複数...
-
「何とかで始まり、何とかで終...
-
住宅にカナを入力する際に丁目...
-
Excel VBAでPDFファイルをMicro...
-
英数字のみ全角から半角に変換
-
なぜ「◯◯年代に」という時は th...
-
perl 初めてのプログラムにエラ...
-
Excel VBA: Inputステートメ...
-
全角入力
-
エクセルにMicrosoft Barcode C...
-
【ExcelVBA】英数記号の半角変換
-
算用数字(半角)から漢数字へ...
-
[VBA][Excel]クリップボードか...
-
エクセルの区切り位置の設定方法
-
いまスマホからカードの申込み...
-
GDBでデバッグするとき文字列の...
-
半角/全角文字混在データの分...
-
【Excel VBA】文字列の置換作業...
-
文字コードの%E3%80%とは何です...
-
エクセル セルの書式設定 ユ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「何とかで始まり、何とかで終...
-
VBA EXCEL あるセルの中の一...
-
角カッコが含まれてるかどうか...
-
「abcで始まらない」を正規表現...
-
正規表現の否定先読みで、複数...
-
バッチファイルの正規表現を利...
-
正規表現 英数字を1つ以上含む...
-
正規表現について
-
【abc】に【完全一致】する正規...
-
正規表現にて文字数をチェック...
-
入力された文字列が、LD22000を...
-
Perl CSVファイルの複数条件で...
-
正規表現について
-
文字列から数値を抽出したいの...
-
C#での文字置換について
-
linuxでの行頭の空白の取り除き方
-
英字の大文字小文字および混在...
-
正規表現
-
ActionScript3の正規表現で文字...
-
CSVファイルの中で、「 , 」カ...
おすすめ情報