Excel VBA質問箱 IV

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

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


4914 / 13644 ツリー ←次へ | 前へ→

【53645】文字列を配列に変更したいのですが? 坊主頭のプログラマ 08/1/28(月) 23:58 質問[未読]
【53646】Re:文字列を配列に変更したいのですが? VBWASURETA 08/1/29(火) 1:11 回答[未読]
【53647】Re:文字列を配列に変更したいのですが? ichinose 08/1/29(火) 7:04 発言[未読]

【53645】文字列を配列に変更したいのですが?
質問  坊主頭のプログラマ  - 08/1/28(月) 23:58 -

引用なし
パスワード
   文字列を配列に変更して、1文字ずつで処理をしたいので、以下の方法で
行っていますが、もっとsimpleな方法はないでしょうか?

Sub 配列処理_Click()
Dim work0
Dim work1(1 To 10)
work0 = "1234567890"
For i = 1 To 10
 work1(i) = Mid(work0, i, 1)
Next i
End Sub

【53646】Re:文字列を配列に変更したいのですが?
回答  VBWASURETA  - 08/1/29(火) 1:11 -

引用なし
パスワード
   ▼坊主頭のプログラマ さん:

こんばんは。
もしかするとExcelのバージョンで使えない関数かも
しれませんがSplit関数というのがあります。
区切りとなる文字列で分割されるので、1文字ずつに
区切りを入れると言われているような取得が可能です。
例:
Sub main()
  Const text As String = "0;1;2;3;4;5;6;7;8;9;10"
  Dim strtext() As String
  Dim i As Integer
  
  '";"区切り毎に分割されます。
  strtext = Split(text, ";")

  '配列の中身を確認
  For i = 0 To UBound(strtext)
    Debug.Print strtext(i)
  Next i
End Sub

【53647】Re:文字列を配列に変更したいのですが?
発言  ichinose  - 08/1/29(火) 7:04 -

引用なし
パスワード
   おはようございます。

>文字列を配列に変更して、1文字ずつで処理をしたいので、以下の方法で
>行っていますが、もっとsimpleな方法はないでしょうか?
>
Sub 配列処理_Click()
  Dim i As Long
  Dim work0
  work0 = "1234567890"
  ReDim work1(1 To Len(work0))
  For i = 1 To 10
    work1(i) = Mid(work0, i, 1)
    Next i
End Sub

↑これが一番simpleだし、わかりやすいし、速いし・・と、思いますけどねえ!!

Simpleではなく、他の方法 というのなら・・・、

'================================
Sub test()
  Dim g0 As Long
  Dim mystr As String
  Dim myarray As Variant
  mystr = "1234567890"
  myarray = Application.Transpose(Evaluate("if(row(a1:a" & _
           Len(mystr) & ")<=" & Len(mystr) & _
           ",mid(""" & mystr & """,row(a1:a" & _
           Len(mystr) & "),1))"))
  MsgBox mystr
  For g0 = LBound(myarray) To UBound(myarray)
    MsgBox myarray(g0)
    Next
End Sub

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