- ベストアンサー
VBA数字と文字の判断方法について
- Excel2000を使用し、ユーザーフォームのテキストボックスに「A00B0.5C-3.0」と入力してコマンドボタンを押すと、セルのA1に「00」、B1に「0.5」、C1に「-3.0」と表示したいが、マクロを使用すると「-」と「.」も文字と認識してしまい、分かれて表示されてしまう。
- 連続して「00」「0.5」「-3.0」と表示させるために、どのようにすれば良いか教えてください。
- VBAにおいて、数字と文字の判断方法について知りたい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
数字を取り出すのではなく、 アルファベットを省くのは如何でしょう。 Sub try() Dim re As Object Dim d() As String Dim st As String Set re = CreateObject("VBScript.RegExp") re.Pattern = "[A-Z]+" re.Global = True st = "A00B0.5C-3.0" d = Split(Trim(re.Replace(st, " ")), " ") Range("A1").Resize(, UBound(d) + 1).Value = d Set re = Nothing End Sub 一例になれば。
その他の回答 (2)
- nda23
- ベストアンサー率54% (777/1415)
区切り文字として以下の定義になると思います。 「数字、.(ピリオド)、-(ハイフン)でない連続した文字」 正規表現は"[^\d\.\-]+"となります。 以下の部分を修正してください。 ★ re.Pattern = "¥D+(¥d+)" ↓ re.Pattern = "[^\d\.\-]" ★ d = Split(Trim(re.Replace(tx1.Text, "$1 ")), " ") ↓ d = Split(Trim(re.Replace(tx1.Text, " ")), " ")
お礼
返答ありがとうございます。 この方法でもうまくいきました!正規表現の部分がまだちょっと勉強不足でした。 これからもっと勉強していきたいと思います。 ありがとうございました。
- A88No8
- ベストアンサー率52% (836/1606)
こんにちは 入力データのフォーマットは12桁固定ですか? AとBと-の符号は、固定ですか?
補足
返答ありがとうございます。 入力データのフォーマットは12桁固定ではなく変動します。 アルファベットは変動しますが、-と.の符号は固定です。
お礼
返答ありがとうございます。 このやり方でうまくいきました!文字ではなくアルファベットを省けばよかったんですね。 勉強になりました。