Sub Kanrimas_call()
Dim komo(18) As String, nara As String, st
Dim finame(1) As String, foname(1) As String, narabi As String, path As String, kensu As Integer
Dim ken As Integer, moji As String, c As Integer, kamei, code

count = 0: cout = 0: kensu = 2: narabi = "": code = "": st = 0
path = "c:\aa着色加工計画\"
finame(1) = "T_SORT.csv"
foname(0) = "kanrisha.csv"
foname(1) = "管理者マスタ.csv"

Close #2
Close #1
Open path + foname(0) For Output As #2 'Kanrisha.csvを開く


Open path + foname(0) For Append As #2 'kanrisha.csvを追加モードで開く
Open path + finame(1) For Input As #1
'項目名の出力
Input #1, code, komo(1), komo(2), komo(3), komo(4), komo(5), komo(6), komo(7), komo(8), komo(9), komo(10), komo(11), komo(12), komo(13), komo(14), komo(15), komo(16), komo(17), komo(18)
Do Until EOF(1) = True
Input #1, code, komo(1), komo(2), komo(3), komo(4), komo(5), komo(6), komo(7), komo(8), komo(9), komo(9), komo(10), komo(11), komo(12), komo(13), komo(14), komo(15), komo(16), komo(17), komo(18)

上記のマクロを実行すると、
Input #1, code, komo(1), komo(2), komo(3), komo(4), komo(5), komo(6), komo(7), komo(8), komo(9), komo(9), komo(10), komo(11), komo(12), komo(13), komo(14), komo(15), komo(16), komo(17), komo(18)の所で
ファイルにこれ以上データがありませんというメッセージがでます。
何がおかしいのでしょうか、教えてください。
ちなみに、T_SORT.csvにはデータがA列からS列まで19列にデータがあります。

A 回答 (2件)

> Input #1, code, komo(1), komo(2), komo(3), komo(4), komo(5), komo(6), komo(7), komo(8), komo(9), komo(9), komo(10), komo(11), komo(12), komo(13), komo(14), komo(15), komo(16), komo(17), komo(18)の所で


> ファイルにこれ以上データがありませんというメッセージがでます。
> 何がおかしいのでしょうか、教えてください。
> ちなみに、T_SORT.csvにはデータがA列からS列まで19列にデータがあります。

まず、foname(0)をOutputモードとAppendモードで二重に開こうしていますので、この時点でエラーになります。(質問欄の記述誤り?)

本題ですが、最後の行をInputするときにエラーが発生します。
Do ~以下のInput文の変数(code ~ komo(18))が全部で20個あるため、最後のkomo(18)にInputしようとして「ファイルにこれ以上」データがありません」となります。
最後のkomo(18)をはずせば、読み込めますが、そもそも、komo(9)が2回あるのは正しいのでしょうか?
    • good
    • 0
この回答へのお礼

参考になりました。
ありがとうございました。

お礼日時:2002/04/03 09:22

こんにちは。

maruru01です。

Input~のコードは2箇所ありますが、どちらで出ますか。もし、Doループ内でなら、何周目で出ますか。(ちなみにこのDoループはお尻にLoopはもちろんあるんですよね。)
おかしいというのは、読み込んだデータの行数と実際のCSVファイルの行数が一致しないということですか?
あと、foname(0)をOutputモードとAppendモードで二重に開こうとしてますが、これではエラーになるのでは?(この質問欄への単なる記述ミスならいいですが)
補足お願いします。

あと、蛇足ですが
ファイル番号は1、2という数字を直接あてるのではなく、FreeFile関数を使用した方がいいですよ。FreeFile関数を使用すれば、わざわざ最初に使う番号をCloseしなくてもいいですし。
あと文字列の結合は"+"ではなく、"&"を使用した方がいいですよ。数値演算と混同しますし。
では。
    • good
    • 0

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


人気Q&Aランキング