tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルエクセル形式CSVの編集について
記事No3526
投稿日: 2006/04/24(Mon) 07:39
投稿者くま
[OSのVer]:WindowsXP    [VBのVer]:VB.NET  

はじめまして、VBをはじめてまだ日が浅くてわからないことばかりですが宜しくお願いします。

下記のようなエクセル形式のCSVファイルでbを検索し、その3列目と4列目の数字を別の数字に
変更したいのですが、エクセルに数字すら書き込めない状態です。エクセル形式のCSVではCELL関数は
使えないのでしょうか?教えてください。宜しくお願いします。

あ    い    う    え    お
                
a    1    2    3    4
b    4    1    2    3
c    5    6    7    4
d    3    4    3    4
e    1    2    3    4

以下途中のプログラムです。
ホームページ内の.NETからExcelの基本的な操作方法をまねてさせていただいてます。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click

        Dim ExcelFilePath As String = "C:\test\test.csv"
        Dim ExcelApp As New Excel.Application
        Dim ExcelBooks As Excel.Workbooks = ExcelApp.Workbooks

        Dim ExcelBook As Excel.Workbook = ExcelBooks.Open(ExcelFilePath)
        Dim ExcelSheets As Excel.Sheets = ExcelBook.Worksheets
        Dim ExcelSheet As Excel.Worksheet = ExcelSheets.Item(1)


        'Excelを表示
        ExcelApp.Visible = True

        ExcelSheet.Cells("C4").Value = 1
        'ExcelSheet.Cellsの開放
        MRComObject(ExcelSheet.Cells)
        ExcelSheet.Cells("D4").Value = 1
        'ExcelSheet.Cellsの開放
        MRComObject(ExcelSheet.Cells)


        'ExcelSheetの開放
        MRComObject(ExcelSheet)
        'ExcelSheetsの開放
        MRComObject(ExcelSheets)

        'ExcelBookを閉じる
        ExcelBook.Close(False)

        'ExcelBookの開放
        MRComObject(ExcelBook)
        'ExcelBooksの開放
        MRComObject(ExcelBooks)

        'CSVファイルを閉じる
        ExcelApp.Quit()

        'ExcelAppの開放
        MRComObject(ExcelApp)

        MessageBox.Show("変換終了")

    End Sub
    'COM オブジェクトへの参照を解放するプロシージャ
    Private Sub MRComObject(ByRef objCom As Object)
        'COM オブジェクトの使用後、明示的に COM オブジェクトへの参照を解放する
        Try
            '提供されたランタイム呼び出し可能ラッパーの参照カウントをデクリメントします
            If Not objCom Is Nothing AndAlso System.Runtime.InteropServices. _
                                                      Marshal.IsComObject(objCom) Then
                Dim I As Integer
                Do
                    I = System.Runtime.InteropServices.Marshal.ReleaseComObject(objCom)
                Loop Until I <= 0
            End If
        Catch
        Finally
            '参照を解除する
            objCom = Nothing
        End Try
    End Sub
End Class

[ツリー表示へ]
タイトルRe: エクセル形式CSVの編集について
記事No3530
投稿日: 2006/04/24(Mon) 14:25
投稿者花ちゃん
下記コードをもう少し色々いじって勉強してみて下さい。
データの書き込み等そのようにしていないはずですが?。

hhttp://www.bcap.co.jp/hanafusa/dotnet/Excel01.htm

[ツリー表示へ]
タイトルRe^2: エクセル形式CSVの編集について
記事No3546
投稿日: 2006/04/25(Tue) 23:23
投稿者くま
[OSのVer]:WindowsXP    [VBのVer]:VB.NET  

すいません。書き込むことができました。
「Cells().Value = 」で直接書き込めると思い込んでいました。
ありがとうございます。

[ツリー表示へ]