- 締切済み
文字列操作
imogasiの回答
- imogasi
- ベストアンサー率27% (4737/17068)
正規表現での回答がでて、そちらの方がスマートで良いと思うが、泥臭くやると Sub test02() st = 1 a = "[ab(c123de)f(ghij5)pq](aaa)sd" fnd = "n" '数字を見つけたかどうかのフラグ pp0: p1 = InStr(st, a, "(") If p1 = 0 Then GoTo pp2 '(見つからず最終段階へ 'MsgBox p1 p2 = InStr(st, a, ")") s = s & Mid(a, 1, p1) For i = p1 + 1 To p2 '数字を見つける範囲の繰り返し If fnd = "y" Then s = s & Mid(a, i, 1) GoTo pp1 Else If IsNumeric(Mid(a, i, 1)) Then '数字を見つける fnd = "y" s = s & Mid(a, i, 1) Else End If End If pp1: Next i If fnd = "n" Then s = s & ")" 'MsgBox s st = p2 + 1 '繰り返しの用意 a = Mid(a, st, Len(a) - st + 1) 'MsgBox a fnd = "n" '繰り返しのための初期化 st = 1 GoTo pp0 pp2: s = s & a '(がみつからない段階で最終処理 MsgBox s End Sub テストデータが無いので十分テストできて無いが参考に。
関連するQ&A
- EXCEL2003 指定した位置の文字列を取り出す
"ABC,DEFG,H,IJ,KLMNO,PQ,RSTU"というような文字列に対して、「1」ならば"ABC"を、「5」ならば"KLMNO"を取り出したいと思います。 そういう関数があったと思うのですが思い出せません。 どなたか教えてください。 よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- 文字列
Visual Basic6.0 よろしくお願いします。 (ab"N1"cde"N11"fjh"N111"ij"N1111"k) のような文字列から (ab"N0001"cde"N0011"fjh"N0111"ij"N1111"k) のように N の後の数字を4桁数字にしたい 場合はどうすれば良いでしょうか? 便利な関数や方法がありましたら教えてください。 お願いいたします。
- 締切済み
- Visual Basic
- 文字列操作
Visual Basic6.0 よろしくお願いします。 (1) a12bc34d56ef (2) a12bc3456 のような文字列から (1) 一番後ろの数字56 の前のa12bc34d (2) 一番後ろの数字3456 の前のa12bc を消して (1) 56ef (2) 3456 にしたい 場合はどうすれば良いでしょうか? 便利な関数や方法がありましたら教えてください。 お願いいたします。
- ベストアンサー
- Visual Basic
- A列の文字列からB列の文字列を
A列の文字列からB列の文字列を 引く(マイナス)することはできないでしょうか? 例) A列 - B列 - C列 ABCD - CD - AB ABCD - BCD - A ABCD - GH - ABCD という風にC列に関数で結果を表示したいのです。 方法はないでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルで数字とアルファベットと文字列を分割する方法
こんばんは。 エクセルのセルで数字とアルファベットの文字列を分割する方法を教えて下さい。 100AB3.4C → "100" "AB" "3.4" "C" 間にスペースやカンマなど無く、文字数は異なります。 数字は小数点がある場合と無い場合があります。(上記の "100" "3.4" のように) 同じ列に同様のデータが数件~数千件あり、まとめて分割したいです。 関数もしくはマクロ(VBA)で可能であれば教えて下さい。 最近マクロの勉強を初めたのですが、方法が思いつきません。。。 宜しくお願いします。
- ベストアンサー
- Visual Basic
- スペースを含んだ文字列から文字列の抽出
エクセルバージョン2007 スペースを含む文字列で、A列に文字列がある時、以下の式を組んで文字列を抽出しています。 先頭にIDの数字が有る場合は、それぞれの目的に合った文字列を抽出しています。 B1=LEFT(A1,SEARCH(" ",A1,1)-1) C1=LEFT(MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),SEARCH(" ",MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),1)-1) 3 3df-32654-10 CCCCHH 10 1ab-12345-00 AAABBBB この文字列の場合、B列に3と10が表示、C列に 3df-32654-10 1ab-12345-00が表示されます。 先頭に、IDの無い文字列は以下の様な構成です。 6rt-95132-00 PPPKKK この文字列の場合、B列に6rt-95132-00、C列にPPPKKKが表示されてしまい、この場合、IDの数字が無い場合はB列には表示させない又は、C列に6rt-95132-00させたいと思っています。 ご教授頂ければ幸いです。 以上、宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- 文字列の並び換え
Visual BASIC 6で 文字列の並び換えの方法がわかりません 文字列には半角も全角もあって数字もあります。 if A$ < B$ then ではだめです。
- 締切済み
- Visual Basic
- Perlでの文字列操作について
Perlを使用しての文字列操作について教えてください。 たとえば以下のような数字とアルファベットが順に並ぶ文字列があるとします。 11A4C555D67B114B9423C アルファベットは1文字ですが、数字は何個でも連続で並びます。 この文字列を「数字アルファベット」の部分で分割し、配列に格納したいのですが、うまくいきません。 @array=('11A','4C','555D','67B','114B','9423C') どなたか教えてください。よろしくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
お礼
丁寧なアドバイス、ありがとうございました。(~0~)ノ