• ベストアンサー

エクセル 2007/5/23の文字数が9文字としてカウントされないのはなぜ?

エクセルにて 2007/5/23とセルに書いてあります。 そのセルの文字の数をlen関数で数えると9文字と表示されず、 5文字となりますが、なぜですか? また'2007/5/23とすると、ちゃんと9文字になりますが、 VBAで’を追加して、ちゃんと9文字と表示されるように する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.1

その、2007/5/23 と入っているセルの書式で「表示形式」を「標準」にして見てください ね、5文字でしょ >VBAで’を追加して、ちゃんと9文字と表示されるように Range("A1") = "'" & Range("A1")

VitaminBB
質問者

お礼

回答ありがとうございます。 理解できました。

その他の回答 (4)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.5

◆シリアル値の説明は皆さんがされていますので省略します ◆A1に「2007/5/23」と入力されていて、9文字になる式 =LEN(TEXT(A1,"yyyy!/m!/d"))

VitaminBB
質問者

お礼

回答ありがとうございます。 理解できました。

  • arare2005
  • ベストアンサー率31% (63/199)
回答No.4

日付型で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 になります。 こんな例で判るでしょうか?

VitaminBB
質問者

お礼

回答ありがとうございます。 理解できました。

noname#31387
noname#31387
回答No.3

シリアル値を調べて下さい。 VBAなら下記で表示されている 文字数を調べられます。 MsgBox Len(Excel.Range("A1").Text)

VitaminBB
質問者

お礼

回答ありがとうございます。 理解できました。

  • mircle
  • ベストアンサー率16% (67/409)
回答No.2

2007/5/23という日付形式で入力すると、実際にはエクセルではシリアル値として認識されます。 シリアル値とは1900年1月1日を 1としているものです。 ですから2007/5/23というのをシリアル値でみると39225という数字に変わります。 つまり5文字です。 このシリアル値の文字数を取ってきているので5文字と表示されます。

VitaminBB
質問者

お礼

回答ありがとうございます。 理解できました。

関連するQ&A

専門家に質問してみよう