アプリ版:「スタンプのみでお礼する」機能のリリースについて

textに自分で入力した値を変数文字列として扱う場合に、括弧を使いたいのですが、


Dim A as string
Dim B as string
A = Text1.text
B = "abc"

としてコマンドボタンを押したときにAとBの値が同じ場合(Aがabc)は1をAとBの値が違うときは0を出力するプログラムを作ったのですが、これに追加で括弧()や[]をつけても1を出力するプログラムが作りたいのですが、よくわかりません。

Text1.textの値が(abc)か[abc]でも1を出力、 [ab]cやa(b)cでも1を出力、(abcやa)bc(やa(b(cのときは0を出力するプログラムが作りたいのです。

どうか教えてください。
おねがいします。

A 回答 (3件)

#2>


>""は置換する文字列(?)
>はスペース(?)
>1は検索開始位置(1文字目から)'
""は、長さのない文字列
つまり、長さのない文字列で置き換える
つまり、取り除くってことですね。
a = Replace(a, ")", "",ココ , 1)
"ココ"は、置換を開始する位置を数値で書きます
省略すると1が想定されます。
その後の1は、置き換える回数で、省略すると全部置き換えされます。ここでは、1を指定しているので、1回置き換えます。
結果が1になる場合、カッコのペアたかだか1回であるということを想定しているからです。(実際は違うのかもしれませんが、質問文からはそう思えました。)もし、1回以上であったり、順序が逆の場合は、除去されないカッコが残るので、当然カッコを含まない文字列とは一致しないということですね。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

わかりやすい説明ありがとうございます。

括弧の数は決まってないですが、たぶん1個ずつのセットしかでてこないので大丈夫だと思います(説明不足でした、すいません)

スペースは開始する位置を示していたんですね。
そして最後の1は回数だったのですね。

If bucketL < bucketR And bucketL * bucketR <> 0 Thenの*や<>も使い方をよく知らなかったので勉強になりました。
本当にありがとうございました。

お礼日時:2004/12/06 16:44

'()または、[]がペアになっているか調べてなっていれば取り除いて=かどうか調べる


Dim bucketL, bucketR,a,b
a=Text1.text
b="abc"
bucketL = InStr(a, "[")
bucketR = InStr(a, "]")
If bucketL < bucketR And bucketL * bucketR <> 0 Then
a = Replace(a, "[", "", , 1)
a = Replace(a, "]", "", , 1)
End If
bucketL = InStr(a, "(")
bucketR = InStr(a, ")")
If bucketL < bucketR And bucketL * bucketR <> 0 Then
a = Replace(a, "(", "", , 1)
a = Replace(a, ")", "", , 1)
End If
if a = b then
'同じ
MsgBox 1
else
'違う
MsgBox 0
end if
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
またお世話になります。

プログラムに対する説明が1部わからないのでどうか教えてください。

>bucketL = InStr(a, "[")
'文字列aの中に[が何文字目にきているか調べて、その値をbuketLにいれる'

>bucketR = InStr(a, "]") ''
'文字列aの中に]が何文字目にきているか調べて、その値をbucketRにいれる'

>If bucketL < bucketR And bucketL * bucketR <> 0
>Then
'bucketLがbucketRより小さい値で、bucketLとbucketRをかけた値が0以外のとき'

>a = Replace(a, "[", "", , 1)
'指定された文字列の1部を、別の文字列で指定された回数分で置換してaにいれる。
Replaceは関数
aは置換する文字列を含む文字列
"["は検索する文字列
""は置換する文字列(?)
はスペース(?)
1は検索開始位置(1文字目から)'

お礼日時:2004/12/04 09:14

instr関数でできると思います。



if instr(text1.text, "ABC") <> 0 then
'文字列あり
else
'文字列なし
end if

でいけるかと思います。instr関数はHELPで確認してみて下さい。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

おかげで(ABC)や[ABC]はできました。
instrは文字列に文字が何番目に含まれているか教えてくれる命令コードですよね。
なぜか調子悪くてHELPは使えないので検索などで調べています。

お礼日時:2004/12/04 00:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!