• ベストアンサー

VB6でファイルを開く

こんにちは。 いま作成中のプログラムなんですが、data.csvというファイルを作って、そのファイルに値をいれていきます。 現在、data.csvはexeファイルのあるフォルダに保存されるようになっています。 このデータを、プログラム中で呼び出して見たいのですが、どうすればよいでしょうか? 第一希望としては、計算処理中に呼び出してExcelに値が入っていくのを見たいです。 が、むりなら計算処理が終了した後でも可です。 よろしくお願いします。

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

  • ベストアンサー
noname#22222
noname#22222
回答No.2

<data.csv> 1,2,3 11,22,33 111,222,333 <Book1.xls> A  B  C 1  11  111 2  22  222 3  33  333 と読み込んでエクセルシートに表示するには、 Option Explicit Private Sub CommandButton1_Click()   Dim I    As Integer   Dim J    As Integer   Dim N    As Integer   Dim M    As Integer   Dim Datas() As String   Dim Texts() As String      Datas() = FileReadArray("data.csv")   N = UBound(Datas()) + 1   For I = 1 To N     Texts() = Split(Datas(I - 1), ",")     M = UBound(Texts()) + 1     For J = 1 To M       Sheets(1).Cells(J, I) = Texts(J - 1)       MsgBox Texts(J - 1)     Next J   Next I End Sub プログラムコードを簡略化するためにCSVファイルを配列に読み込む FileReadArray()を利用しています。 Option Explicit Public Function FileReadArray(ByVal FileName As String) As String() On Error GoTo Err_FileReadArray    Dim fso    As FileSystemObject    Dim fil    As File    Dim txs    As TextStream    Dim strText  As String    Dim strTexts() As String       Set fso = New FileSystemObject    Set fil = fso.GetFile(FileName)    Set txs = fil.OpenAsTextStream(ForReading, TristateUseDefault)    strText = txs.ReadAll    strTexts = Split(strText, Chr$(13) & Chr$(10)) Exit_FileReadArray:    FileReadArray = strTexts()    Exit Function Err_FileReadArray:    MsgBox Err.Description & "(FileReadArray)", vbExclamation, " 関数エラーメッセージ"    strTexts() = Split("")    Resume Exit_FileReadArray End Function

ZZR1200
質問者

お礼

遅くなって申し訳ありません。 >FileReadArray()・・・知りませんでした。 参考にさせていただきます。 ありがとうございました。

その他の回答 (2)

回答No.3

>ずばっというと、データの入っているExcelをプログラムから呼び出して立ち上げたいんです。 こういうことですか。 Private Sub Command1_Click() Dim File2 As String File2 = App.Path & "\data.csv" Open File2 For Output As #2 Print #2, "1,2,3" Print #2, "abc,def,hij" Close #2 Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") ExcelSheet.Application.Quit Shell ExcelSheet.Application.Path & "\excel.exe " & File2, vbNormalFocus Set ExcelSheet = Nothing End Sub

ZZR1200
質問者

お礼

遅くなって申し訳ありません。 参考にさせていただきます。 ありがとうございました。

noname#24240
noname#24240
回答No.1

まず、開きたいファイルのパスは以下のとおりですよね。 app.Path & "\data.csv" csvファイルはカンマ区切りのデータなので、 1行ずつ読み込んで、split関数を使ってデータ取得できると思います。 申し訳ないのですが、私には具体的にどのような処理をしたいのかが いまいち判りませんでした…。 どこまで説明したらよいのかがわかりませんので ひとまず、これで少しはヒントになるでしょうか。

ZZR1200
質問者

お礼

お礼が大変遅くなって申し訳ありません。 ありがとうございました。

ZZR1200
質問者

補足

説明がいたらず、申し訳ありません。 ずばっというと、データの入っているExcelをプログラムから呼び出して立ち上げたいんです。 またアドバイスがありましたらよろしくお願いします。

関連するQ&A