VB初心者質問スレ Part6
■ このスレッドは過去ログ倉庫に格納されています
0840672
NGNG>>804さん度々ありがとうございます。
アドバイスに従って、選択除去法を書いてみました。
最初、If関数でループの変数が、まだ残ってる数字の中にあるかという考えで書いたんですが、
それだと、前のと変わらない事に気付きまして、下の様に書き直しました。
以前のものよりさらに速くなりましたが、考え方はこんな感じでいいでしょうか?
>>804さん始めレスくださったみなさん大変勉強になりました。ありがとうございました。
Dim sData As String '書込み用データ
Dim strBuff(6) As String '数字格納データ
Dim sKumiawase(7) As String '残りの組合わせ文字列
Dim i As Integer 'ループ用カウンタ1
Dim j As Integer 'ループ用カウンタ2
Dim k As Integer 'ループ用カウンタ3
Dim l As Integer 'ループ用カウンタ4
Dim m As Integer 'ループ用カウンタ5
Dim n As Integer 'ループ用カウンタ6
Dim o As Integer 'ループ用カウンタ7
Dim p As Integer 'ループ用カウンタ8
For i = 1 To 8
sKumiawase(0) = "01234567"
strBuff(0) = Get_Number(i, sKumiawase(0), sKumiawase(1))
For j = 1 To 7
strBuff(1) = Get_Number(j, sKumiawase(1), sKumiawase(2))
For k = 1 To 6
strBuff(2) = Get_Number(k, sKumiawase(2), sKumiawase(3))
For l = 1 To 5
strBuff(3) = Get_Number(l, sKumiawase(3), sKumiawase(4))
For m = 1 To 4
strBuff(4) = Get_Number(m, sKumiawase(4), sKumiawase(5))
For n = 1 To 3
strBuff(5) = Get_Number(n, sKumiawase(5), sKumiawase(6))
For o = 1 To 2
strBuff(6) = Get_Number(o, sKumiawase(6), sKumiawase(7))
sData = strBuff(0) & strBuff(1) & strBuff(2) & strBuff(3) & strBuff(4) & strBuff(5) & strBuff(6) & sKumiawase(7)
Print #FileNumber, sData
Next o
Next n
Next m
Next l
Next k
Next j
Next i
Public Function Get_Number(i As Integer, sKumiawase1 As String, sKumiawase2 As String) As String
Dim sLeft As String '取り出した数字の左側の文字列
Dim sRight As String '取り出した数字の右側の文字列
Dim iMojisuu As Integer '全体の文字数
iMojisuu = Len(sKumiawase1)
sLeft = Left(sKumiawase1, i - 1)
sRight = Mid(sKumiawase1, i + 1, iMojisuu - i)
sKumiawase2 = sLeft & sRight
Get_Number = Mid(sKumiawase1, i, 1)
End Function
■ このスレッドは過去ログ倉庫に格納されています