[[20141020082938]] 『セル内のカンマで区切った数値の取出し』(やっぱり初歩) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セル内のカンマで区切った数値の取出し』(やっぱり初歩)

 いつもお手数をお掛けします。
 セルの中に文字列で [ 1,15,200,10,525,3000 ] と入力されています。
 この内容を配列へ格納したいのです。何か良い方法は無いかと思い次の様な
 ものを書き始めた所でした。いろいろ問題が予想され頓挫し掛けています。
 未だ配列を備えていませんが、何か良い方法は無いでしょうか?

   Dim p&, p1&, p2&, Num&, At2nd As Boolean

   With Range("A1")
      For i = 1 To Len(.Value)
         p = InStr(i, .Value, ",")
         If p <> 0 Then
            p1 = p + 1        '文字列の先頭位置
            p2 = i - 1        ' 〃 の最後位置
           If Not At2nd Then
               Num = Left(.Value, p2)
               At2nd = True
            ElseIf i = Len(.Value) Then
               Num = Mid(.Value, p1, p2)
            End If
         End If
      Next
   End With

 こんな拙いもので済みません・・・

< 使用 Excel:Excel2010、使用 OS:Windows8 >


 Splitを使えばいいのではないでしょうか。簡単に配列に格納できます。
(カリーニン) 2014/10/20(月) 08:57

 サンプルコードです。

 Sub test()
  Dim sp As Variant
  Dim mystr As String
   mystr = Range("A1").Value
   sp = Split(mystr, ",")
   MsgBox mystr & vbCrLf & Join(sp, "/") & vbCrLf & Replace(mystr, ",", "_")
   Range("B1").Resize(UBound(sp) + 1).Value = WorksheetFunction.Transpose(sp)
   Erase sp
 End Sub

(カリーニン) 2014/10/20(月) 09:10


 どうも有り難うございました。
 コードを書いている途中で、何か関数があるのではと思い調べようとしましたが・・・
 ”やっぱり初歩”でした。簡単に出来ました。
(やっぱり初歩) 2014/10/20(月) 09:19

    Dim x
    x = Split(Trim$(Mid$([a1], 2, Len([a1]) - 2)), ",")
 とか?
(seiya) 2014/10/20(月) 09:24

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.