重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

結果=53545#10,20,30,40,50,60,・・・,
と続く値を
DATE1=10
DATE2=20
DATE3=30
といった具合に並び替えるには何の関数を用いればよいのでしょうか?
お願いしますm( u u )m

A 回答 (3件)

並べ替え?



1つ文字列のデータを数値の配列に代入出来ればいいのでしょうか?

Dim s as String, s1 as variant
Dim a() as Integer, n as integer
s = "53545#10,20,30,40,50,60"
n = 0
' #の次以降のデータを取得
s = Mid(s, InStr( s, "#") + 1 )
for each s1 in Split( s, "," )
  Redim Preserve a(n)
  a(n) = s1
  n = n + 1
next
といった具合で a()に数値データを取得出来ます

Splitが使えないなら …

dim n as integer, i as integer
dim s as string
dim a() as integer
s = "53545#10,20,30,40,50,60"
s = Mid( s, instr( s, "#")+1)
i = InStr( s, "," )
while i > 0
  Redim preserve a(n)
  a(n) = left( s, i - 1 )
  s = mid( s, i + 1 )
  i = instr( s, ",")
  n = n + 1
Wend
if s<>"" then
  Redim Preserve a(n)
  a(n) = s
end if
といった具合です
    • good
    • 0
この回答へのお礼

お礼が遅くなってすいません!
回答ありがとうございますm( u u )m
勉強不足の為のつまらない質問なのですがお答え頂ると嬉しいです。

s = Mid( s, instr( s, "#")+1)=10,20,30,40,50,60であってますか?またこの式のカッコ内のsはs = "53545#10,20,30,40,50,60"のsでしょうか?またこれ以降のsは何を表しているのでしょうか?
最後に、、具体的にはaの部分にDATE、(n)の部分に数字が入ってa=DATE,n=1,n=2と書きPrint a(n) とすると最初の質問のようにDATE1=10 DATE2=20 DATE3=30
となるのですか?

質問ばかりで申し訳ないです( ^ ^ ;)

お礼日時:2008/02/04 05:20

なりません …


配列aには単に数値の『10』『20』などの数値が格納されるだけです

DATA1 = 10
などと表示したいのであれば
m = 1
for n = LBound(a) to UBound(a)
  print "DATA" & m & "=" & a(n)
  m = m + 1
Next
といった具合にします

最初のsは53545#10,20,30,40,50,60です
s=Mid(s, instr( s, "#")+1)で10,20,30,40,50,60になります
ループのなかのs=Mid( s, i+1 )は
1回目で20,30,40,50,60
2回目で30,40,50,60
3回目で40,50,60
4回目で50,60
5回目で60
6回目で""
になります
    • good
    • 0
この回答へのお礼

うまく出来ました!また疑問が出てきたときには暇であれば回答お願いします(笑)
ほんとにありがとうございました!

お礼日時:2008/02/08 03:41

VB4にはご希望の関数が用意されておりませんので、


For Next文等のループを使ってソートすることになります。
    • good
    • 0
この回答へのお礼

お礼が遅くなってすいません!
回答ありがとうございますm( u u )m

お礼日時:2008/02/04 04:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!