■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#8275-0Format関数についてちさ2000-03-07(火) 14:54
     #8279-0RE#8275:Format関数について魔界の仮面弁士2000-03-07(火) 15:05
     #8288-0RE#8279:Format関数についてちさ2000-03-07(火) 16:03
     #8304-0RE#8288:Format関数について魔界の仮面弁士2000-03-07(火) 16:46
#8275-0
Format関数について
こんにちは。

 Byte型で渡されてくる値を16進数に変換して、Format関数で桁を揃えて表示し
たいと思っています。

 itemX.SubItems(2) = Format$(Hex(btData), "00")

とやってみたのですが、btDataが「10〜15」の時には「0A」というような表示に
なってくれません。

 しょうがないので現在は下記の様にしていますが、もし、「"00"」の部分に
いれる値で適当なものがありましたら教えてください。

 sTmp = Format$(Hex(btData), "00")
 If Len(sTmp) < 2 Then sTmp = "0" & sTmp
 itemX.SubItems(2) = sTmp          'データセット(16進)

環境はWin98+VB5(SP3)です。
#8279-0
RE#8275:Format関数について
>  Byte型で渡されてくる値を16進数に変換して、Format関数で桁を揃えて表示し
> たいと思っています。
>  itemX.SubItems(2) = Format$(Hex(btData), "00")
この場合、Formatの第一引数は「数値」ではなく、「文字列」のまま処理されますので、
「数値表示書式指定文字」である"00"を指定しても、何の意味もありません。

> とやってみたのですが、btDataが「10〜15」の時には「0A」というような表示に
> なってくれません。
itemX.SubItems(2) = Right$("0" & Hex$(btData), 2)
もしくは、
itemX.SubItems(2) = Right$("00" & Hex(btData), 2)
でどうぞ。
#8288-0
RE#8279:Format関数について
お返事ありがとうございます。

> >  Byte型で渡されてくる値を16進数に変換して、Format関数で桁を揃えて表示し
> > たいと思っています。
> >  itemX.SubItems(2) = Format$(Hex(btData), "00")
> この場合、Formatの第一引数は「数値」ではなく、「文字列」のまま処理されますので、
> 「数値表示書式指定文字」である"00"を指定しても、何の意味もありません。
おお、なるほど。文字列として扱われてしまっているわけですね。
 
> > とやってみたのですが、btDataが「10〜15」の時には「0A」というような表示に
> > なってくれません。
> itemX.SubItems(2) = Right$("0" & Hex$(btData), 2)
> もしくは、
> itemX.SubItems(2) = Right$("00" & Hex(btData), 2)
> でどうぞ。
●両方やってみたのですが違いがわかりません・・・
 特に何か違いがあるのでしょうか?
#「Hex」、「Hex$」どちらでもStringで返ってくるんですよね?
#8304-0
RE#8288:Format関数について
>> itemX.SubItems(2) = Right$("0" & Hex$(btData), 2)
>> itemX.SubItems(2) = Right$("00" & Hex(btData), 2)
> ●両方やってみたのですが違いがわかりません・・・
>  特に何か違いがあるのでしょうか?
同じ結果になるように作ったので、基本的な違いはありません。

Hexの場合は"0"でなく、"00"にしているのは、
btDataがNullだった場合に対応させているからです。

btDataがNullで無いことが判っている場合(例えば、btDataはVariantでないとか)であれば、
Hex$を使った方式の方がよいと思います。

> #「Hex」、「Hex$」どちらでもStringで返ってくるんですよね?
後者の戻り値は「String型」、前者は「内部形式StringタイプのVariant型」です。
これは戻り値だけではなく、引数の型についても同様です。
Hex(Null)と、Hex$(Null)の違いを確認してみてください。
このページと関連する記事:
#28598-0Format関数について2002-05-10(金) 09:07
#11913-0$について2000-10-05(木) 05:54
#21289-0テキストボックス内に表示させた数値の表示方法2002-06-25(火) 15:56
#16430-0内部処理形式 String の Variantについて2000-11-21(火) 11:27
#16054-0TrimとTrim$の違い2001-05-11(金) 09:50
#55-3フォーマット関数について教えてください2003-11-05(水) 20:41
#10858-0Format関数ってどうなってるの?2000-05-23(火) 19:39
#249-1データベースの更新2004-01-30(金) 15:30
#27704-0Format関数の使い方2000-08-10(木) 11:40
#21851-0数値の桁数表示について2001-07-15(日) 13:09
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)