-PR-
解決済み

マクロエラーについて

  • すぐに回答を!
  • 質問No.241159
  • 閲覧数56
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

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列にデータがあります。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル9

ベストアンサー率 47% (44/92)

> 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回あるのは正しいのでしょうか?
お礼コメント
noname#72697

参考になりました。
ありがとうございました。
投稿日時 - 2002-04-03 09:22:59

その他の回答 (全1件)

  • 回答No.1
レベル14

ベストアンサー率 51% (1179/2272)

こんにちは。maruru01です。

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

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


このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-

特集


専門家があなたの悩みに回答!

ピックアップ

ページ先頭へ