- ベストアンサー
エクセル 2007/5/23の文字数が9文字としてカウントされないのはなぜ?
エクセルにて 2007/5/23とセルに書いてあります。 そのセルの文字の数をlen関数で数えると9文字と表示されず、 5文字となりますが、なぜですか? また'2007/5/23とすると、ちゃんと9文字になりますが、 VBAで’を追加して、ちゃんと9文字と表示されるように する方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
その、2007/5/23 と入っているセルの書式で「表示形式」を「標準」にして見てください ね、5文字でしょ >VBAで’を追加して、ちゃんと9文字と表示されるように Range("A1") = "'" & Range("A1")
その他の回答 (4)
- maron--5
- ベストアンサー率36% (321/877)
◆シリアル値の説明は皆さんがされていますので省略します ◆A1に「2007/5/23」と入力されていて、9文字になる式 =LEN(TEXT(A1,"yyyy!/m!/d"))
お礼
回答ありがとうございます。 理解できました。
- arare2005
- ベストアンサー率31% (63/199)
日付型でcellが指定されている為、質問の通りの文字にしたい場合は変換が必要です。 Excel のセルに見えるものは、表示形式が設定されているので、2007/5/23と見える訳です。 これをVBAで行うと、こんな感じです。(ActiveCell.Value=2007/5/23) Dim str as String, Dim len as Integer str = Fromat(ActiveCell.Value, "y/m/d") '日付を所定に形式に変換 len = LEN(str) 'len=9 y/m/d を yyyy/mm/dd にすると、2007/05/23 で、len=10 になります。 yyyymmdd にすると、20070523 で、len=8 になります。 こんな例で判るでしょうか?
お礼
回答ありがとうございます。 理解できました。
シリアル値を調べて下さい。 VBAなら下記で表示されている 文字数を調べられます。 MsgBox Len(Excel.Range("A1").Text)
お礼
回答ありがとうございます。 理解できました。
- mircle
- ベストアンサー率16% (67/409)
2007/5/23という日付形式で入力すると、実際にはエクセルではシリアル値として認識されます。 シリアル値とは1900年1月1日を 1としているものです。 ですから2007/5/23というのをシリアル値でみると39225という数字に変わります。 つまり5文字です。 このシリアル値の文字数を取ってきているので5文字と表示されます。
お礼
回答ありがとうございます。 理解できました。
お礼
回答ありがとうございます。 理解できました。