Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7453 / 76732 ←次へ | 前へ→

【74866】Re:シリアル値を時刻表示にしたい
発言  kanabun  - 13/10/13(日) 15:11 -

引用なし
パスワード
   ▼hamaki さん:こんにちは〜

>isdata関数で判定しましたが1行目がシリアル値のため
>Falseとなり時刻表示ができません

isdata関数 → IsDate関数ですね

思うに、Rangeのあとのプロパティを省略しないで、最適な
プロパティを明示したほうがいいと思う。
そうすれば、結局、

>  Dim Ch As Boolean
>  Dim GetTime As String

>   For i = 1 To 6
>     GetTime = Sht.Cells(Gyou, 3)
>     Ch = IsDate(GetTime)

の GetTime = Sht.Cells(Gyou, 3) を

GetTime = Sht.Cells(Gyou, 3).Text にするだけで、すべてが

目論見通りに動くとおもう。

(注)↓GetTime という変数は そういう関数と間違えやすいので、
strTime に変えてあります。

Sub Check2()
  Dim Ch As Boolean
  Dim strTime As String
  Dim strDate As String
  Dim Sht As Worksheet
  Dim i As Long
  Dim Mjs As Integer
  
   Set Sht = ThisWorkbook.Worksheets("Sheet1")
   For i = 5 To 10
     strTime = Sht.Cells(i, 3).Text
     Ch = IsDate(strTime)
     Sht.Cells(i, 4).Value = Ch
     If Ch = False Then
       Sht.Cells(i, 5).Value = strTime
     Else
       strDate = FormatDateTime(strTime, 4)
       Mjs = Len(strDate)
       If Mjs < 6 Then
          Sht.Cells(i, 5).Value = strDate
       End If
       ' 読込Dataに[AM]等がある場合6文字以上になる判定
       Mjs = Len(strTime)
       If Mjs > 5 Then
         Sht.Cells(i, 5).Value = strTime
       End If
     End If
   Next i
End Sub

305 hits

【74864】シリアル値を時刻表示にしたい hamaki 13/10/13(日) 9:47 質問
【74866】Re:シリアル値を時刻表示にしたい kanabun 13/10/13(日) 15:11 発言
【74867】Re:シリアル値を時刻表示にしたい hamaki 13/10/13(日) 16:31 お礼

7453 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free