- ベストアンサー
VB6でファイルを開く
こんにちは。 いま作成中のプログラムなんですが、data.csvというファイルを作って、そのファイルに値をいれていきます。 現在、data.csvはexeファイルのあるフォルダに保存されるようになっています。 このデータを、プログラム中で呼び出して見たいのですが、どうすればよいでしょうか? 第一希望としては、計算処理中に呼び出してExcelに値が入っていくのを見たいです。 が、むりなら計算処理が終了した後でも可です。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
<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
その他の回答 (2)
- otto0001otto
- ベストアンサー率25% (64/249)
>ずばっというと、データの入っている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
お礼
遅くなって申し訳ありません。 参考にさせていただきます。 ありがとうございました。
まず、開きたいファイルのパスは以下のとおりですよね。 app.Path & "\data.csv" csvファイルはカンマ区切りのデータなので、 1行ずつ読み込んで、split関数を使ってデータ取得できると思います。 申し訳ないのですが、私には具体的にどのような処理をしたいのかが いまいち判りませんでした…。 どこまで説明したらよいのかがわかりませんので ひとまず、これで少しはヒントになるでしょうか。
お礼
お礼が大変遅くなって申し訳ありません。 ありがとうございました。
補足
説明がいたらず、申し訳ありません。 ずばっというと、データの入っているExcelをプログラムから呼び出して立ち上げたいんです。 またアドバイスがありましたらよろしくお願いします。
お礼
遅くなって申し訳ありません。 >FileReadArray()・・・知りませんでした。 参考にさせていただきます。 ありがとうございました。