dポイントプレゼントキャンペーン実施中!

VB6.0を始めたばかりの初心者です。

以下のサイト「厳選ツールサンプル集」でVB.NETで可能そうなプログラムを見つけたのですが、
VB6.0ではエラーが出るようです。

また、配列を宣言した後に
Redimを使っていないようですが、
UBoundで配列の変数の数を取得していると考えてよいのでしょうか?
そしてこういった使い方はVB6でも出来るのでしょうか?

過去ログを検索したのですが、Redimを使う回答しか見つけられなかったので、
ご存知の方がいたら教えてください。

http://anetm.com/dev/d.cgi?SC=DTDTL&o=OOe

A 回答 (2件)

下記でVB4,5,6、エクセルVBAで動くと思います。

VB.NETは初心者ですが、何か参考になれば。
質問で指定のURLのコードと異なっている個所が、VB.NETでの新仕様だと思います。小生もVB.NETを勉強しなくてはと思いました。
LineInputはDOS-BASIC時代からあります。
ReadLineは
http://homepage1.nifty.com/MADIA/vb/vb_bbs2/2002 …
のようにVBScriptで使えるが、VB6では使える
のでしょうか。
Sub csvread()
Dim strLine As String '1行
Dim strTemp() As String '戻り配列
Dim intCnt As Integer '配列添え字
Dim strData As String 'データ
Open "c:\my documents\aaa.csv" For Input As #1

'次の行へ
While Not EOF(1)
Line Input #1, strLine
'行単位データをカンマ部分で分割し、配列へ格納
strTemp = Split(strLine, ",")

For intCnt = 0 To UBound(strTemp)

'テスト的に、列番号を印字
strData = strData + "★" + CStr(intCnt) + "列目"

'列データ strTemp(intCnt) を取得

strData = strData + strTemp(intCnt)
Next

'テスト的に、行の終わりを印字
strData = strData + "■行終"
MsgBox strData

'次の行へ
Wend

'デバッグでテキストフィールドへ書きだします。
TextBox1.Text = strData
'エクセルVBAの場合
' Worksheets("sheet2").TextBox1.Text = strData
'ファイルのクローズ
Close #1
End Sub
    • good
    • 0
この回答へのお礼

この通りに実行するとmsgBoxに追加されてテキストフィールドに書き込めませんでした。
csvファイルが大きすぎたのかもしれません。
とりあえず目的のことができるようになりました。
ありがとうございました。

お礼日時:2004/01/05 12:30

VB6.0 では、ReDim を使用するしか方法がないと思います。


どうせ ReDim で要素数を指定しなければならないので、UBound は不要ですね。
Do While ...
  lng_Index = lng_Index + 1
  ReDim Preserve str_Temp(lng_Index)
  str_Temp(lng_Index) = ...
  ...
Loop
のような感じでしょうか。
    • good
    • 0
この回答へのお礼

ありがとうございます
Split関数を使うとRedimは使わなくてもよいようです。
どういった処理をしてるのかはわかりませんでしたが、一応目的のものはできました。

お礼日時:2004/01/05 12:27

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