アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。
いま作成中のプログラムなんですが、data.csvというファイルを作って、そのファイルに値をいれていきます。

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

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/09/26 15:02

>ずばっというと、データの入っている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
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/09/26 15:03

まず、開きたいファイルのパスは以下のとおりですよね。


app.Path & "\data.csv"

csvファイルはカンマ区切りのデータなので、
1行ずつ読み込んで、split関数を使ってデータ取得できると思います。

申し訳ないのですが、私には具体的にどのような処理をしたいのかが
いまいち判りませんでした…。
どこまで説明したらよいのかがわかりませんので
ひとまず、これで少しはヒントになるでしょうか。

この回答への補足

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

補足日時:2006/08/29 18:24
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/09/26 14:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!