「これはヤバかったな」という遅刻エピソード

VBAでシリアル値を取得する方法を教えていただけないでしょうか

テキストデータで
20140810の形でデータがあります。
このデータをもとに、2014年8月10日のシリアル値である41861を取得したいのですが、その方法を調べてもわからないので、教えていただけないでしょうか

エクセルの関数のDATEVALUEのような関数をVBAの中でも使い41861を取得したいです。

シリアル値 取得 と検索すると、DateSerial関数がでてきますが違うようです。

わからなくなってきたので、アドバイスをお願いいたします。

A 回答 (2件)

こんにちは。



Dim s As String
  s = "20140810"
  MsgBox CLng(DateValue(Format(CLng(s), "0/00/00")))

みたいに、
(Long型に)型変換 > Format(文字列型) > 日付型に変換 > (Long型に)型変換
するのがオーソドックスかと。

シート上の数式の方が少し簡単で、それを応用すると
  MsgBox Evaluate("--TEXT(--" & s & ",""0-00-00"")")
とか。

以上です。
    • good
    • 0
この回答へのお礼

何回も型変換する方法は勉強になりました。
ありがとうございました。

お礼日時:2014/10/09 07:58

#1です。



2例目は
  MsgBox Evaluate("--TEXT(" & s & ",""0-00-00"")")
2文字分短く書けたのでした。

失礼しました。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報