OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

マクロエラーについて

  • すぐに回答を!
  • 質問No.241159
  • 閲覧数55
  • ありがとう数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
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル14

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

こんにちは。maruru01です。 Input~のコードは2箇所ありますが、どちらで出ますか。もし、Doループ内でなら、何周目で出ますか。(ちなみにこのDoループはお尻にLoopはもちろんあるんですよね。) おかしいというのは、読み込んだデータの行数と実際のCSVファイルの行数が一致しないということですか? あと、foname(0)をOutputモードとAppendモードで二重に開こうとしてます ...続きを読む
こんにちは。maruru01です。

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

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

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

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

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

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ