| 
    
     |  | ▼泉 道男 さん: こんにちは。
 
 >下の数字がA1からA70まで並んでいます。実はA2からA1を引き結果は-19になります。それを繰り返すと次は1となり、更に-5、6、17となるはずですが文字列に1をかけても数値に変わらないので困っています。尚、マクロのことも知らない初心者です。よろしくお願いいたします。
 
 >
 > 1,200 
 > 1,181  -19
 > 1,182   1
 > 1,177   -5
 > 1,183   6
 > 1,200   17
 > 1,220 
 > 1,208 
 > 1,215 
 > 1,211 
 > 1,227 
 > 1,244 
 > 1,239 
 > 1,238 
 > 1,268 
 > 1,248 
 > 1,227 
 > 1,243 
 > 1,225 
 > 1,226 
 このデータがアクティブなシートのセルA1から入力されていたとすると・・、
 
 標準モジュールに
 '===========================================================
 Sub main()
 Dim rng As Range
 Dim crng As Range
 Set rng = Range("a1", Cells(Rows.Count, "a").End(xlUp))
 For Each crng In rng
 crng.Offset(0, 1).Value = get_num(crng.Value)
 Next
 End Sub
 '===========================================================
 Function get_num(mystr As Variant) As Variant
 With CreateObject("VBScript.RegExp")
 .Pattern = "[0123456789,\.]+"
 .IgnoreCase = True
 .Global = True
 Set Matches = .Execute(mystr)
 get_num = False
 If Matches.Count > 0 Then
 On Error Resume Next
 get_num = CDbl(Replace(Matches(0).Value, ",", ""))
 If Err.Number <> 0 Then
 get_num = False
 End If
 End If
 End With
 End Function
 
 
 として、mainを実行してみてください。
 
 
 対応するB列に数字のみを抜粋します。
 
 例
 A1           B1
  1,200     1200
 
 関数get_numは、ちょっとチェックが甘いけど、まあよいでしょう!!
 
 試して見てください
 
 |  |