Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


33141 / 76734 ←次へ | 前へ→

【48817】Re:文字の抽出
回答  Kein  - 07/5/10(木) 14:37 -

引用なし
パスワード
   では、これでどうかな・・?

Sub Check_Data2()
  Dim Ary As Variant, Ary2 As Variant
  Dim i As Long, Num As Single
  Dim C As Range
  Dim V As String, MyS As String, RetSt As String
  Const CkSt As String = _
  "N20,(Z2.4),N20,(Z-6.0),N30,(Z1.0),N20,(Z-3.5),N30,(Z-5.0)"
 
  Application.ScreenUpdating = False
  Range("IT1:IU1").Value = Array("Data1", "Data2")
  Ary = Split(CkSt, ")")
  For i = 0 To UBound(Ary) - 1
   V = CStr(Ary(i)): Ary2 = Split(V, "Z")
   MyS = Ary2(0)
   Num = Val(Ary2(1))
   If Left$(MyS, 1) = "," Then
     MyS = Right$(MyS, Len(MyS) - 1)
   End If
   Cells(i + 2, 254).Value = MyS
   Cells(i + 2, 255).Value = Num
   Erase Ary2
  Next i
  Range("IT:IU").Sort Key1:=Range("IT1"), Order1:=xlAscending, _
  Key2:=Range("IU1"), Order2:=xlAscending, Header:=xlYes, _
  Orientation:=xlSortColumns
  With Range("IU2", Range("IU65536").End(xlUp)).Offset(, 1)
   .Formula = "=IF($IT1<>$IT2,$IU2)"
   For Each C In .SpecialCells(3, 1)
     RetSt = RetSt & C.Offset(, -2).Value & _
     "Z" & Format(C.Value, "###.0") & "),"
   Next
   '.CurrentRegion.ClearContents
  End With
  RetSt = Left$(RetSt, Len(RetSt) - 1)
  Application.ScreenUpdating = True
  Debug.Print RetSt
End Sub

加工前の文字例としては、上(CkSt)のようになるべくいろいろなケースを
交えた方がいいです。なぜなら例文では偶然できたけど、他の文字列で
やってみたら希望の形と違っていた、という可能性が高くなるからです。

4 hits

【48802】文字の抽出 なた 07/5/9(水) 16:12 質問
【48803】Re:文字の抽出 Kein 07/5/9(水) 18:02 回答
【48813】Re:文字の抽出 なた 07/5/10(木) 12:01 質問
【48817】Re:文字の抽出 Kein 07/5/10(木) 14:37 回答
【48825】Re:文字の抽出 なた 07/5/10(木) 18:46 お礼
【48804】Re:文字の抽出 ウッシ 07/5/9(水) 19:50 発言

33141 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free