Excel VBA質問箱 IV

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

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


11040 / 76734 ←次へ | 前へ→

【71236】Re:時間を元にソートするには?
発言  kanabun  - 12/2/12(日) 17:29 -

引用なし
パスワード
   ▼シンク さん:
>kanabun氏、返信ありがとうございます。
>
>下記の件について、試してみたところ問題があるようです。

>If文の表現に問題があるのかと思いました。
>すべてElseにいっているようです。
>> For i = 1 To UBound(v)
>>   If v(i, 1) > 0# And v(i, 1) < 1# Then
そこのIf文は A列のデータが 9:00 や 8:12 など「時刻」データである
かどうかを判定しているところです。
もし 9:00 とかの時刻データであれば、そのセルの Valueは 9:00 で、
そのセルの Value2 は 0.375 です。(Value = 9:00 のセルの Value2 は
0.375 つまりシリアル値 です )
したがって
>   If v(i, 1) > 0# And v(i, 1) < 1# Then
の行は 時刻の代入されているセルかどうかを調べているわけです。
時刻は 0:00 〜 24:00 の値をとりますから、Value2としては
0.0 〜 1.0 の範囲になります。それを判定しているわけです。
(ただし、空白セルも、時刻 00:00 のセルも 数値にすると 0 ですから
00:00 というデータがあると、ほんとはちょっとまずいのですが)

で、 9:00 とか 8:12 とかのセルを選択して 以下を実行してDebugして
もらえないですか?
Sub checkDataType()
 MsgBox TypeName(ActiveCell.Value)
End Sub
こちらで、9:00 とか 8:12 とかのセルをポイントして ↑を実行しますと
MsgBox には Double と表示されます。
そちらではどうですか?
もし String とか表示されてるとすると、これでは
>   If v(i, 1) > 0# And v(i, 1) < 1# Then
の範囲に入りません(文字列です)ので Else のほうに行っちゃって、
If文の判定に失敗してます。

5 hits

【71222】時間を元にソートするには? シンク 12/2/11(土) 17:49 質問
【71223】Re:時間を元にソートするには? kanabun 12/2/11(土) 19:05 発言
【71224】Re:時間を元にソートするには? kanabun 12/2/11(土) 19:07 発言
【71234】Re:時間を元にソートするには? シンク 12/2/12(日) 16:47 質問
【71236】Re:時間を元にソートするには? kanabun 12/2/12(日) 17:29 発言
【71402】Re:時間を元にソートするには? シンク 12/2/29(水) 6:07 質問
【71403】Re:時間を元にソートするには? kanabun 12/2/29(水) 9:28 発言
【71438】Re:時間を元にソートするには? シンク 12/3/2(金) 23:20 質問
【71439】Re:時間を元にソートするには? kanabun 12/3/3(土) 0:39 発言
【71440】Re:時間を元にソートするには? kanabun 12/3/3(土) 10:27 発言
【71446】Re:時間を元にソートするには? シンク 12/3/4(日) 17:43 お礼
【71237】Re:時間を元にソートするには? kanabun 12/2/12(日) 21:22 発言
【71238】Re:時間を元にソートするには? kanabun 12/2/12(日) 21:30 発言
【71250】Re:時間を元にソートするには? シンク 12/2/15(水) 4:09 お礼
【71225】Re:時間を元にソートするには? ちん 12/2/11(土) 20:44 発言
【71235】Re:時間を元にソートするには? シンク 12/2/12(日) 16:53 発言

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