web-dev-qa-db-ja.com

ワークシートでフォーマットされたVBAのExcelセル値を取得するにはどうすればよいですか?

数値のリストで先行ゼロを維持する必要があります。番号は次のように追加されます(ループ内ですが、これは(1、1)を使用した単なる例です:

_Set cel = Sheet.worksh.Cells(1, 1)
cel.ColumnWidth = 10
cel.Value = e.Name
cel.NumberFormat = "0000"
_

ここで、_e.Name_は "0720"のような数値です。これはワークシートにうまく表示されますが、私がこのようなことをすると:

_Msgbox Sheet.worksh.Cells(1, 1).Value
_

「720」が表示されます。 "0720"にする必要があります。Len()を使用してチェックし、そのようにゼロを追加できることはわかっていますが、これを行うRangeオブジェクトを使用したより直接的なアプローチがあるかどうか疑問に思いました。

17
Logan Serman

これを使って:

Msgbox Format(Sheet.worksh.Cells(1,1).Value, "0000")
13
Lance Roberts

数値とそのテキスト表現を混同しています。

.Textプロパティではなく.Value、しかし 問題が発生する可能性があります

25
GSerg

さらに良いのは、形式がわからない場合です。

Msgbox Format(Sheet.worksheet.Cells(1,1).Value、Sheet.worksheet.Cells(1,1).NumberFormat)

7
Jon Peltier

パーティーには少し遅れますが、次のように、常に値と数値の形式を別々に呼び出すこともできます。

Msgbox Application.WorksheetFunction.Text(Sheet.worksh.Cells(1、1).Value、Sheet.worksh.Cells(1、1).NumberFormat)

0
Kirk