Excel VBA質問箱 IV

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

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


73632 / 76738 ←次へ | 前へ→

【7580】Re:セル内の文字の位置
回答  ichinose  - 03/9/8(月) 22:46 -

引用なし
パスワード
   ▼どらちゃん さん:
こんばんは。

>何度かお世話になっています。
>
>以下のように、小数点以下桁数の一番長いものに桁を合わせて表示させる、というロジックを書いています。
>
>1.332
>12.56975
>3.5
>上記の3つの値があったら、2番目に合わせて
>1.33200
>12.56975
>3.50000
>にしたいのです。
>
>そこでうまくいかないのが、「.」(=少数点)の位置を返したいのですが
>うまくいきません・・。Findを使っている前後でひっかかります。
>
>どんなことでもいいので、よろしくお願い致します。
>
>****************************
>Dim CPpl As Integer
>Dim CPvl As String
>Dim CPlen As Byte
>For Rr=2 to 31
> CP = RSht.Cells(Rr, 12)
> CPpl = CP.Find(".")
> CPvl = Mid(CStr(RSht.Cells(Rr, 12)), CPpl)
> If Len(CPvl) > CPlen Then CPlen = Len(CPvl)
>Loop
>Dim CTT As Byte
>CTT = 0
>Do Until CTT = CPlen
> KETA = KETA + "0"
> CTT = CTT + 1
>Loop
>CSht.Range("G7:G36").NumberFormat = "#,##0." & KETA & ";-#,##0." & KETA

'================================
Sub main()
  Dim 桁数 As Long
  Dim 書式 As String
  桁数 = get_小数点以下の桁数(Range("G7:G36"))
  書式 = "#,##0"
  If 桁数 > 0 Then
    書式 = 書式 & "." & String(桁数, "0")
    End If
  Range("G7:G36").NumberFormat = 書式
End Sub
'==========================================================
Function get_小数点以下の桁数(rng As Range) As Long
'get_小数点以下の桁数 は、正の値のとき、意味を持つ
  With rng
    get_小数点以下の桁数 = Application.Evaluate("=MAX(LEN(TEXT((ABS(" _
      & .Address & "-TRUNC(" & .Address & "))),""@"")))") - 2
    End With
End Function

試してみて下さい。

0 hits

【7576】セル内の文字の位置 どらちゃん 03/9/8(月) 20:58 質問
【7580】Re:セル内の文字の位置 ichinose 03/9/8(月) 22:46 回答
【7591】Re:バッチリです どらちゃん 03/9/9(火) 10:31 お礼

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