作成日: 2023/05/26 最終更新日: 2023/09/27
文書種別
不具合
状況
修正済み
詳細
特殊な行(※注)を含むワークシートが存在するxlsxファイルを読み込み、そのワークシートをコピーしてxlsxおよびPDFとして保存すると、コピー先のワークシート上で特殊な行の高さが不正になります。
※注
この場合の「特殊な行」とは、xlsxファイルの拡張子をzipに変更後、解凍して得られる内部ファイル「/xl/worksheets/sheet*.xml」にて、下記のように行の高さが設定されていないものです。
MS Excelで作成した場合など、本来は次のように行の高さが設定されています。
※注
この場合の「特殊な行」とは、xlsxファイルの拡張子をzipに変更後、解凍して得られる内部ファイル「/xl/worksheets/sheet*.xml」にて、下記のように行の高さが設定されていないものです。
<row r="34">
<c r="B34" s="18" t="s">
<v>27</v>
</c >
<c r="C34" s="19"/>
<c r="N34" s="8"/>
<c r="O34" s="8"/>
</row>
MS Excelで作成した場合など、本来は次のように行の高さが設定されています。
<row r="34" spans="2:15" ht="39" x14ac:dyDescent="0.2>
<c r="B34" s="10" t="s">
<v>27</v>
</c>
<c r="C34" s="11"/>
<c r="N34" s="8"/>
<c r="O34" s="8"/>
</row>
回避方法
この問題はバージョン6.2.2で修正されました。
※修正版を適用しない場合の回避方法は以下の通りです。
下記2つのうち、いずれかの方法を使用してください。
1.次のように、GcExcelにて特殊な行を含むワークシートの任意のセルの行の高さを取得してからワークシートをコピーします。
2.次のように、GcExcelにてコピー元のファイルを保存、再読み込みしてから ワークシートをコピーします。
※修正版を適用しない場合の回避方法は以下の通りです。
下記2つのうち、いずれかの方法を使用してください。
1.次のように、GcExcelにて特殊な行を含むワークシートの任意のセルの行の高さを取得してからワークシートをコピーします。
Dim source_workbook As New Workbook
Dim workbook As New Workbook
source_workbook.Open("Sample.xlsx")
Dim temp = source_workbook.ActiveSheet.ActiveCell.RowHeight
Dim copy_worksheet = source_workbook.ActiveSheet.CopyBefore(workbook.Worksheets(0))
2.次のように、GcExcelにてコピー元のファイルを保存、再読み込みしてから ワークシートをコピーします。
Dim source_workbook As New Workbook
Dim workbook As New Workbook
source_workbook.Open("Sample.xlsx")
source_workbook.Save("temp.xlsx")
source_workbook.Open("temp.xlsx")
Dim copy_worksheet = source_workbook.ActiveSheet.CopyBefore(workbook.Worksheets(0))