[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/06/03(Sat) 23:04
投稿者名:べた
Eメール:
URL :
タイトル:
VBからExcelへの表示で、ゼロから始まる文字列の扱い
VBからoo4o接続でデータベースからデータを抽出しています。
抽出したデータをExcelに送り表示しようとしています。

ここで、データの一部にゼロから始まる値があり、そのまま、
Execlで表示するとゼロか取り除かれた表示されます。
ゼロを取り除かれずに表示したいのですが、どうすれば良い
のでしょうか。

抽出したデータが、「000001」とすると、Excelで表示すると「1」
抽出したデータが、「099999」とすると、Excelで表示すると「99999」
となる。
これを、「000001」、「099999」としたいのです。

書式を文字列にしてみたのですが、変わりませんでした。
xlSheet.Cells.NumberFormat = "@"

以下にコードを載せます。

Private Sub Command1_Click()
    Dim objSess         As Object
    Dim objDb           As Object
    Dim objDs           As Object
    Dim objCol          As Object
    Dim str_SQL         As String
    Dim xlApp   As Excel.Application
    Dim xlBook  As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    Dim I As Integer
    Dim j As Integer
    Dim RowCnt As Integer

  On Error Resume Next
    Set objSess = 〜
    Set objDb = 〜
  
    str_SQL = ""
    str_SQL = "SELECT 〜
    Set objDs = objDb.DbCreateDynaset(str_SQL, 12&)

    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Add
    Set xlSheet = xlBook.Worksheets.Add

    xlSheet.Cells(1, 1) = "番号"
    xlSheet.Cells(1, 2) = "名前"
    xlSheet.Cells(1, 3) = "年月日"
    
    I = 2
    Do Until objDs.EOF
        For j = 1 To 3
            xlSheet.Cells(I, j) = objDs(j - 1).Value
        Next j
        I = I + 1
        If I > 11 Then
            Exit Do
        End If
        objDs.DbMoveNext
    Loop
    xlApp.Visible = True
    RowCnt = I - 1
  
    xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(RowCnt, 3)).Borders.LineStyle =
xlContinuous '実線
    xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(RowCnt, 3)).Borders
(xlEdgeTop).LineStyle = xlGray75
    xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(RowCnt, 3)).Borders
(xlEdgeLeft).LineStyle = xlGray75
    xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(RowCnt, 3)).Borders
(xlEdgeRight).LineStyle = xlGray75
    xlSheet.Range(xlSheet.Cells(RowCnt, 1), xlSheet.Cells(RowCnt, 3)).Borders
(xlEdgeBottom).LineStyle = xlGray75
    xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(1, 3)).Borders(xlEdgeBottom).LineStyle

= xlDouble

    xlSheet.Cells.NumberFormat = "@"

    xlSheet.Cells.VerticalAlignment = xlVAlignCenter
    xlSheet.Range("A:A").HorizontalAlignment = xlLeft
    xlSheet.Range("B:B").HorizontalAlignment = xlVAlignCenter
    xlSheet.Range("C:C").HorizontalAlignment = xlRight
    xlSheet.Cells.Interior.Color = RGB(0, 255, 0)

  On Error GoTo 0
    xlApp.Quit
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing

    Set objDs = Nothing
    Set objDb = Nothing
    Set objSess = Nothing
    Set objCol = Nothing
End Sub

投稿時間:2006/06/03(Sat) 23:48
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: VBからExcelへの表示で、ゼロから始まる文字列の扱い
> 書式を文字列にしてみたのですが、変わりませんでした。
> xlSheet.Cells.NumberFormat = "@"

一旦表示してから設定しても手遅れでは。(表示する前に設定しておかないと)

投稿時間:2006/06/04(Sun) 18:21
投稿者名:べた
Eメール:
URL :
タイトル:
Re^2: VBからExcelへの表示で、ゼロから始まる文字列の扱い
ありがとうございます。
正しく、表示することができました。