エクセルで綺麗に表示するには?


TOSHI  2003-04-08 19:47:47  No: 77618

引数は数値でFormatを使って通貨型にし
マイナスの時は右端に"△"を付けるのですが
Right関数やSpace関数を使って
表示しようとするのですが綺麗に表示ができません
誰か教えてください。


toshi  2003-04-08 21:59:49  No: 77619

>マイナスの時は右端に"△"を付けるのですが
左端でした。


  2003-04-19 00:36:54  No: 77620

=IF(A1<0,"△"&YEN(ABS(A1)),YEN(A1))

単純ですが、こういうことですか?


魔界の仮面弁士  2003-04-19 01:08:24  No: 77621

セルの書式設定で、『0;"△"0;』という指定を行っては如何でしょう。
プログラムから指定するのであれば、Rangeオブジェクトの
NumberFormatプロパティに対して、
  objRange.NumberFormat = "0;""△""0;"
という感じで。


TOSHI  2003-04-22 17:57:15  No: 77622

説明不足ですみません
                Hkei = csv.Cells(行ナンバー, i + 4)
                If Sgn(Hkei) = -1 Then
                    
                    Hskei = Format(Abs(Hkei) / 1000, "#,##0")
                    Hskei = "△" & RightB(Space$(75) + Hskei, 24)
                Else
                    Hskei = Format(Hkei / 1000, "#,##0")
                    Hskei = RightB(Space$(1000) + Hskei, 24)
                End If
                用紙.Cells(行, i) = Hskei
このように書いてもどうしてもマイナスの時に左端
が少しずれてしますのでそこを直したいのですが
どうすればいいですか?


ぢゃわ  2003-04-24 01:26:20  No: 77623

まず、マイナス値のときは△+24文字、プラスのときは24文字のみ
という点でずれが生じているはずです。

次に、セルの書式設定を標準のままにして行っている場合、
マイナス値は”△”+空白+数値のレイアウトなので、
文字型として認識し、左詰めで表示されると思いますが、
プラス値の場合には空白+数値のレイアウトなので、
数値型として認識し、右詰めで表示されると思います。
ここでも表示上のずれが発生します。

で、対応方法ですが、
>Formatを使って通貨型に
ということなのですが、マイナス値のときに”△”は左詰めで、
間に空白を置いて数値部分は右詰めという書式を通過型(数値型)で
実現するのは難しいと思うので文字型での出力になると思います。
#実現方法ご存知の方いればRESお願いします

'================================================================
Hkei = csv.Cells(行ナンバー, i + 4)
If Sgn(hkei) = -1 Then
  'マイナス値の場合
  Hskei = "△" & Right(Space(24) & Format(Abs(hkei) / 1000, "#,##0"), 24)
Else
  'プラス値の場合
  Hskei = "  " & Right(Space(24) & Format(hkei / 1000, "#,##0"), 24)
End If
'出力セルの書式設定を文字列型にする
用紙.Cells(行, i).NumberFormatLocal = "@"
'データ出力
用紙.Cells(行, i) = Hskei
'================================================================

ただ、このやり方だとデータは文字列型になり、数値としての演算が
面倒になります。
自分なら、可能であれば出力セルを符号部と数値部の2列に分けると思います。

'================================================================
Hkei = csv.Cells(行ナンバー, i + 4)
用紙.Cells(行, i).NumberFormatLocal = ";""△"";"
用紙.Cells(行, i+1).NumberFormatLocal = "#,##0;#,##0;#,##0"
用紙.Cells(行, i) = hkei / 1000
用紙.Cells(行, i+1) = hkei / 1000
'================================================================
この場合表示に2セル必要になりますが、数値として扱えるので後に演算処理が
ある場合に楽になります。参考までに。


ぢゃわ  2003-04-24 02:36:16  No: 77624

補足ですが、フォントがプロポーショナルフォントの場合には
当然位置ずれが生じます。
データ出力セルのフォントは
用紙.Cells(行, i).Font.Name = "MS  ゴシック"
等でプロポーショナルでないフォントに設定する必要があります。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加