|    | 
     こんばんは。 
 
>エクセルVBAのフォームで時間表示することで 
>つまづいてます。 
> 
>エクセルのセルから値を取得しフォームで下記のように指定してます。 
>nt = Format(nt, "hh:mm") 
>基本、表示できているのですが値が12:00の時だけ 
>思うような表示になりません。 
このntを説明する記述がありませんね!! 
このntが何なのか? の説明をしてくださいね。 
質問者がご自分が分からないところまで閲覧者を導く記述をする 
これ、よい訓練になりますよ!! 
> 
>nt=セルの値 
>セルには12:00と入ってます。セルの書式は[h]:mmで 
>値を取得した時は0.5と表示されます。 
>ここまではいいのですが、nt = Format(nt, "hh:mm")にしたとたん 
>00:05と表示されます。 
>セルの値が12:01の時はちゃんと12:01表示されますが 
>12:00の場合のみの症状です。 
>何か原因があるのでしょうか? 
この現象が発生する場合のntは、 
 
ntがString型の変数 
ユーザーフォームという記述がありますから、 
ntがテキストボックスコントロールの場合などこのような現象が 
おこりますね!! 
 
仮にntが文字列型変数の場合 
 
sub test() 
  dim nt as string 
  nt=range("a1").value 'セルa1に12:00という時刻が入っているとすると 
 'ntは、0.5という文字列が格納されます。0.5という数値ではありません。 
 '困ったことに 文字列0.5は、0時5分と解釈してしまいます。よって、 
 '記述されたような現象が発生します。ntがテキストボックスの場合も 
 '同じです。 
 msgbox format(nt,"hh:mm") 
End sub 
セルA1に6:00という時刻が入力されていても同じような現象が発生します 
 
はっきり時刻型に変換してあげましょう 
 
 
sub test2() 
  dim nt as string 
  nt=cdate(range("a1").value) 
  nt=format(nt,"hh:mm") 
  msgbox nt 
end sub 
 | 
     
    
   |