以下のプログラムを動かすには、どうしたらよいのでしょうか?
作成環境は、windows xp home,visual studio 2005-visual basic 2005です。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim xlapp As Excel.Application
Dim strFileName As String
Dim intFileNo As Integer
Dim strRecBuff As String
'読み込むCSVファイル名
strFileName = "C:\test.csv"
'空いているファイル番号を取得
intFileNo = FreeFile()
'ファイルを開く
xlApp.Workbooks.Open(My.Application.Info.DirectoryPath & strFileName) For Input As intFileNo
'ファイルの最後に達するまでループ
Do Until EOF(intFileNo)
'ファイルから読み込んだ内容を変数に保存
Input #intFileNo, strRecBuff
'変数の内容をイミディエイトウィンドウに表示
Debug.Print(strRecBuff)
Loop
'ファイルを閉じる
Close(intFileNo)
End Sub
現在のところ、
For Input As intFileNo
の場所で、ステートメントの終わりを指定してくだいとのエラーがでます。
Input #intFileNo, strRecBuff
の # の場所でメソッドの引数は、かっこで囲む必要があります。
と、式が必要です。
Close(intFileNo)
の intfileNo の場所で public sub close()に対する
引数が多すぎますとのエラーがでます。
CSVファイルを読むプログラムを作ろうとしているのですが、
なかなかエラーが解消できません。
どなたか、アドバイス御願いします。
コンパイルすら通らないプログラムを実行するのには無理があるので、
こちらのサイトで勉強してください:
http://homepage1.nifty.com/rucio/main/main.htm
根本的な間違いをしていませんか?
> For Input As intFileNo
とか
> Input #intFileNo, strRecBuff
って、VB6とかの古いバージョンで使用していた機能や書き方ですが・・・
> 作成環境は、windows xp home,visual studio 2005-visual basic 2005です。
VB2005用ではなく、VB6用の(古い)参考書やHPを見ていたりしません?
VB6用のコードは、VB2005では、動作しません。
VB2005でプログラムをするなら、VB2005を対象にした物を使ってください。
とりあえず、1行だけ。
>xlApp.Workbooks.Open(My.Application.Info.DirectoryPath & strFileName) For Input As intFileNo
構文がおかしいですが、
CSVファイルを読むだけならExcelのオートメーションは不要です。
また、
C:\test.csv と My.Application.Info.DirectoryPath を連結したら、
C:\test.csvC:\Documents and Settings\ユーザ名以下省略〜
みたいな意味不明な文字列になりますよね?
たとえば、
このようにDebug.Printでイミディエイトウィンドウに表示してみると、
誤りを発見できると思いますよ。
Dim strFileName As String = "C:\test.csv"
Dim strDirName As String = My.Application.Info.DirectoryPath
Debug.Print(strDirName)
Debug.Print(strFileName)
Debug.Print(strDirName & strFileName)
Debug.Print(System.IO.Path.GetFileName(strFileName))
Debug.Print(System.IO.Path.Combine(strDirName, System.IO.Path.GetFileName(strFileName)))
なるほど。
>大吉末吉
vb6とvb2005では、使用する構文が異なるのですね・・・。
>もげ
こんな検証方法があるんですね。
早速試してみました。なるほどです。
勉強になりました。
目標とするものができたら、解決とさせていただきます。
それまで、少々お待ちを。
VBのバージョンによる構文の違いを間違わないためにも、
まずはヘルプ(MSDN)で確認するクセを付けてください。
[CSVとは]
http://e-words.jp/w/CSV.html
CSVファイルの実体は、テキストファイルです。
(Excelのファイルではありません。)
テキストファイルの入出力は、プログラムの基本ですので
ヘルプにサンプルコードも載ってます。
『テキストファイル』などのキーワードによる検索で
辿り付く事が可能です。
[方法 : ファイルにテキストを書き込む]
http://msdn2.microsoft.com/ja-jp/library/6ka1wd3w(VS.80).aspx
[方法 : ファイルからテキストを読み取る]
http://msdn2.microsoft.com/ja-jp/library/db5x7c0d(VS.80).aspx
ツイート | ![]() |