|
分類:[その他の言語]
2022/05/24(Tue) 10:14:57 編集(投稿者)
ありきたりのファイル読み込みです。
Dim FileData as Variant Set wb = Workbooks.Open(FilePath) Set ws = wb.Worksheets(SheetNo) FileData = ws.UsedRange wb.Close Set ws = Nothing Set wb = Nothing
wbが開かれている状態で 例えばあるセルに【765432123456】という文字列が表示されています。 var をウォッチしても表示は同じく【765432123456】です。 型は[Variant/String] です。 このデータをシートに表示させようと以下の処理を行うと
Dim maxrow As Long: maxrow = UBound(var, 1) '最大行数を取得する Dim maxcol As Long: maxcol = UBound(var, 2) '最大列数を取得する mysheet.Range("A1").Resize(maxrow, maxcol) = var
表示されたセルに表示されるのは 【7.65432E+11】です。ただし、セルをクリックしたときにエクセルの 上部に表示される値は【765432123456】です。
セルの書式設定は【標準】です。 Workbooks.Open で開いたときのファイルも同じくそのセルは【標準】です。
もちろん mysheet.Range("A1").Resize(maxrow, maxcol) = var を行う前に mysheet の該当するセルの書式設定を【文字列】に 変更しておくとセルの表示が【765432123456】になります。 なので、最悪セルの書式設定を【文字列】に変えるしかないのですが
書式設定が同じ標準であっても 【765432123456】で表示される場合と【7.65432E+11】で表示される場合があるのはなぜでしょうか。 また、手動にてコピー貼り付けを行った場合は【765432123456】のままで【7.65432E+11】には ならないのはなぜでしょうか?
【追記】 セルの書式を変更しなくても、コピー元ファイルのシートの状態を そのままコピーしてくる方法はあるのでしょうか?
以上よろしくお願いいたします。
|