| 
    
     |  | ▼neptune さん: どうもありがとうございます。
 
 以下のようにプログラムを変更してみました。
 
 -------------------------------------------------------
 
 Public Sub For_Question2()
 
 Dim cnDatabase As ADODB.Connection
 Dim rs As New ADODB.Recordset
 Dim in_strm As ADODB.Stream
 Dim out_strm As ADODB.Stream
 Dim m_Field As ADODB.Field
 
 Dim i As Long, j As Long
 
 Dim Sql As String
 Dim cnt As String
 
 Dim m_string As String, m_byte1() As Byte, m_byte2() As Byte
 
 
 cnt = "Driver=SQLite3 ODBC Driver; Database=C:\excel_sqlite3_test\test.db"
 Set cnDatabase = New ADODB.Connection
 
 cnDatabase.Open cnt
 
 Worksheets("methodtbl").Select
 Cells.Select
 Selection.Clear
 Cells(1, 1).Select
 
 Sql = "SELECT * FROM methodtbl"
 
 rs.Open Sql, cnDatabase, adOpenForwardOnly
 
 'フィールド名表示
 j = 1
 For Each m_Field In rs.Fields
 
 Cells(1, j).Value = m_Field.Name
 
 j = j + 1
 Next m_Field
 
 
 'データ表示
 i = 2
 
 Do Until rs.EOF
 
 j = 1
 
 For Each m_Field In rs.Fields
 
 Cells(i, j).Select
 'Cells(i, j).Value = "'" & m_Field.Value
 
 Set in_strm = New ADODB.Stream
 Set out_strm = New ADODB.Stream
 
 in_strm.Open
 out_strm.Open
 
 in_strm.Charset = "EUC-JP"
 in_strm.Type = adTypeBinary
 out_strm.Charset = "SJIS"
 out_strm.Type = adTypeBinary
 
 m_byte1() = m_Field.Value
 in_strm.Write m_byte1
 in_strm.CopyTo out_strm
 out_strm.Read m_byte2
 
 in_strm.Close
 out_strm.Close
 
 Set in_strm = Nothing
 Set out_strm = Nothing
 
 Cells(i, j).Value = CStr(m_byte2)
 
 j = j + 1
 
 Next m_Field
 
 i = i + 1
 
 rs.MoveNext
 Loop
 
 
 rs.Close
 Set rs = Nothing
 
 
 End Sub
 
 -------------------------------------------------------
 
 
 そうすると、
 >out_strm.Read m_byte2
 のところで実行時にエラーがでます。
 
 -------------------------------------------------------
 
 実行時エラー'3001':
 
 引数が間違った型、許容範囲外、または競合しています。
 
 -------------------------------------------------------
 
 googleでいろいろ検索してみたのですが、原因がわかりません。
 どこが間違っているのでしょうか?
 
 
 どうぞよろしくお願いいたします。
 
 |  |