[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/11/22(Wed) 11:07
投稿者名:消化不良
Eメール:
URL :
タイトル:
テキストにファイルを読み込んだ時の表示の設定
初めて投稿いたします初心者です。

テキストにファイルをオープンした時に、データごとにそれぞれ設定したいです。

例)111.11 少数点があった場合、小数点の位置を整えて並べる。
    10.111
     1.1 

例)11111 最大5文字までのデータを左に詰めて、4文字以下は右にスペースを空ける。
   1111 
   111  
  
↑は現在format(a,"@@@@@")で指定しているのですが、aが右詰になってスペースが左にあいてしまう状況で困っています。

どうかお力をお貸しください。

投稿時間:2006/11/22(Wed) 11:44
投稿者名:nobu
Eメール:
URL :
タイトル:
Re: テキストにファイルを読み込んだ時の表示の設定
> 例)11111 最大5文字までのデータを左に詰めて、4文字以下は右にスペースを空ける。
>    1111 
>    111  
> ↑は現在format(a,"@@@@@")で指定しているのですが、aが右詰になってスペースが左にあいてしまう状況で困っています。

下記を比べて見て下さい。  !のあり、無し

Dim a As String
a = "1111"
Label1.Caption = "#" & Format(a, "@@@@@!") & "#"
Label2.Caption = "#" & Format(a, "@@@@@") & "#"


また下記の様な方法もありかと.....

「11111 最大5文字までのデータ」は数値ですか? 数字(文字)ですか?
(数値:計算が出来る。  数字:計算が出来ない。)

数値だとして、一度数字(文字)に変換して5桁未満なら空白を加えて5桁に合わせる。

tmp = Left$(Cstr(a) & space(5),5)


VB6のHELPの下記を参照して下さい。
文字列表示書式指定文字 (Format 関数)


文字 内容
@
  1 つの文字またはスペースを表します。変換対象 expression の中で @ (アット マーク) に
  対応する位置に文字が存在する場合は、その文字が表示されます。文字がなければ
  スペースが表示されます。@ は、引数 format に指定した書式の中に表示書式指定文字の
   ! (感嘆符) がない限り、右から左の順に埋められます。

&
  1 つの文字を表します。変換対象 expression の中で & (アンパサンド) に対応する位置に
  文字が存在する場合は、その文字が表示されます。文字がなければ何も表示せず、
  詰められて表示されます。& は、引数 format に指定した書式の中に表示書式指定文字の
   ! (感嘆符) がない限り、右から左の順に埋められます。

<
  小文字にします。すべての文字は小文字に変換されます。

>
  大文字にします。すべての文字は大文字に変換されます。

!
  文字を右から左ではなく、左から右の順に埋めていくように指定します。
  この文字を指定しない場合は、右から左の順に埋められます。

投稿時間:2006/11/22(Wed) 17:11
投稿者名:消化不良
Eメール:
URL :
タイトル:
Re^2: テキストにファイルを読み込んだ時の表示の設定
わざわざ書き込んでくださってありがとうございました。
!をつけるだけで解決しましたありがとうございました。

もう一つの質問の↓

例)111.11 少数点があった場合、小数点の位置を整えて並べる。
    10.11
    -1.1

というのはやり方すらさっぱりなもので、その点もどなたか教えていただけませんでしょうか?
お願いいたします。

投稿時間:2006/11/22(Wed) 18:54
投稿者名:nobu
Eメール:
URL :
タイトル:
Re^3: テキストにファイルを読み込んだ時の表示の設定
> もう一つの質問の↓
> 例)111.11 少数点があった場合、小数点の位置を整えて並べる。
>     10.11
>     -1.1
> というのはやり方すらさっぱりなもので、その点もどなたか教えていただけませんでしょうか?
> お願いいたします。

「やり方すらさっぱりなもので」と言う事は私が書いた先ほどの投稿の
「HELP」の「Format関数」の参照はしない(していない)と言うことですね。
そう言う態度ではプログラミングの進歩は遅いですよ。
まあ、乗りかかった船でもあるのでもう少しつきあいますか.....

下記のフォントはMS ゴシックで試して下さい。
MS Pゴシックの様にPがあるフォントでは小数点の位置のずれの有無の
確認が困難です。

Private Sub Command1_Click()

Dim a As Single
Dim b As Single

a = 10.11
b = -1.1

Label1.Caption = "$ " & Format(a, "###.##") & " $"
Label2.Caption = "$ " & Format(b, "###.##") & " $"

End Sub


他の方法としては数値を Cstr などで文字列に変換してから
小数点の左右に分割して ( Split ) 左右をそれぞれ同じ桁数にする。
例  1234.567

hidari : 1234
migi   : 567

小数点の左側は hidari_gawa = Left$t(space(5) & hidari,5)
小数点の右側は migi_gawa =  Right$(migi & space(5) ,5)


hidari_gawa & "." & migi_gawa

_1234.567__       '  説明の為に _ は半角空白を表す