Excel出力時、テキストの表示位置が設定と異なる

文書番号 : 37567     文書種別 : 不具合     登録日 : 2014/09/10     最終更新日 : 2014/09/10
文書を印刷する
対象製品
VS-FlexGrid Pro 8.0J
状況
現象確認済み
詳細
Cellプロパティ(flexcpAlignment)を使用し、セル単位でセルテキストの表示位置を設定したグリッドを、SaveGridメソッドでExcelに出力すると、グリッドで表示されている位置と異なって出力されてしまう場合があります。


◎サンプルコード(VB)

Private Sub Form_Load()
  VSFlexGrid1.FixedRows = 0
  VSFlexGrid1.FixedCols = 0
  VSFlexGrid1.Rows = 10
  VSFlexGrid1.Cols = 5
  
  For i = 0 To VSFlexGrid1.Rows - 1
    For j = 0 To VSFlexGrid1.Cols - 1
      Select Case j
        Case 0
          VSFlexGrid1.Cell(flexcpText, i, j) = "AAA"
          VSFlexGrid1.Cell(flexcpAlignment, i, j) = flexAlignLeftTop
          If i Mod 2 = 0 Then
            VSFlexGrid1.Cell(flexcpBackColor, i, j) = vbYellow
          End If
        Case 1
          VSFlexGrid1.Cell(flexcpText, i, j) = "BBB"
          VSFlexGrid1.Cell(flexcpAlignment, i, j) = flexAlignCenterCenter
        Case Else
      End Select
    Next
  Next
End Sub

Private Sub Command1_Click()
  Call VSFlexGrid1.SaveGrid(".¥result.xls", flexFileExcel, "Sheet1")
End Sub

回避方法
ColAlignmentプロパティを使用し、列単位で表示位置を設定することで回避する方法をご検討ください。

◎サンプルコード(VB)

Private Sub Form_Load()
  VSFlexGrid1.FixedRows = 0
  VSFlexGrid1.FixedCols = 0
  VSFlexGrid1.Rows = 10
  VSFlexGrid1.Cols = 5
  
  '回避方法
  VSFlexGrid1.ColAlignment(0) = flexAlignLeftTop
  VSFlexGrid1.ColAlignment(1) = flexAlignCenterCenter
  
  For i = 0 To VSFlexGrid1.Rows - 1
    For j = 0 To VSFlexGrid1.Cols - 1
      Select Case j
        Case 0
          VSFlexGrid1.Cell(flexcpText, i, j) = "AAA"
          'VSFlexGrid1.Cell(flexcpAlignment, i, j) = flexAlignLeftTop
          If i Mod 2 = 0 Then
            VSFlexGrid1.Cell(flexcpBackColor, i, j) = vbYellow
          End If
        Case 1
          VSFlexGrid1.Cell(flexcpText, i, j) = "BBB"
          'VSFlexGrid1.Cell(flexcpAlignment, i, j) = flexAlignCenterCenter
        Case Else
      End Select
    Next
  Next
End Sub

Private Sub Command1_Click()
  Call VSFlexGrid1.SaveGrid(".¥result.xls", flexFileExcel, "Sheet1")
End Sub