Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
小数点以下が0でも小数点表示
投稿日時: 22/05/16 17:26:58
投稿者: 天使めぐ

いつもありがとうございます。
今日もよろしくお願いします。
 
セルA1の値 25.5
セルB1の値 -25.0 
セルC1の値 25.5
 
のとき
 
セルD1に X25.5Y-25.Z25.5
 
と入れたいので
 
Range("A4") = "X" & Range("A1").Value & "Y" & Range("A2").Value & "Z" & Range("A3").Value
 
 
やってみましたが
 
X25.5Y-25Z25.5 となってしまいます。
 
機械に送る引数に使うのでどうしても小数点は必要です。
 
どうしたら良いのかご教授願います。

回答
投稿日時: 22/05/16 17:50:43
投稿者: WinArrow
投稿者のウェブサイトに移動

方法1:【セルに数式】
 
="X"&TEXT(A1,"0.0")&"Y"&TEXT(A2,"0.0")&"Z"&TEXT(A3,"0.0")
 
方法2:【VBA】
 
    Range("A4").Value = "X" & Format(Range("A1").Value, "0.0") & _
                        "Y" & Format(Range("A2").Value, "0.0") & _
                        "Z" & Format(Range("A3").Value, "0.0")

回答
投稿日時: 22/05/16 18:12:35
投稿者: WinArrow
投稿者のウェブサイトに移動

前レスは、
25 → 25.0
となります。
 
25 → 25.
とする場合は、
 
=SUBSTITUTE("X"&TEXT(A1,"0.0")&"Y"&TEXT(A2,"0.0")&"Z"&TEXT(A3,"0.0"),".0",".")
 
方法2:【VBA】
 
    Range("A4").Value = Replace( _
                "X" & Format(Range("A1").Value, "0.0") & _
                "Y" & Format(Range("A2").Value, "0.0") & _
                "Z" & Format(Range("A3").Value, "0.0"), ".0", ".")

回答
投稿日時: 22/05/16 18:31:20
投稿者: WinArrow
投稿者のウェブサイトに移動

数式の代案
 
=SUBSTITUTE(CONCAT("X",TEXT(A1,"0.0"),"Y",TEXT(A2,"0.0"),"Z",TEXT(A3,"0.0")),".0",".")

回答
投稿日時: 22/05/16 18:47:11
投稿者: WinArrow
投稿者のウェブサイトに移動

いまさらですが、
最初の質問投稿時
  

引用:

セルA1の値 25.5
セルB1の値 -25.0 
セルC1の値 25.5
   
のとき
   
セルD1に X25.5Y-25.Z25.5

と説明しているのに、
VBAコードでは、
引用:

Range("A4") = "X" & Range("A1").Value & "Y" & Range("A2").Value & "Z" & Range("A3").Value

重大な問題ではないが、
説明とコードは整合するようにお願いします。

投稿日時: 22/05/17 07:47:27
投稿者: 天使めぐ

WinArrow様
 
ありがとうございます!
書式をそろえて、置換えですね?!
教わってみると簡単なことだったんですね^^;
 
小数点以下三桁必要だったので ↓こうして解決しました。
 
    Range("A4").Value = Replace( _
                "X" & Format(Range("A1").Value, "0.000") & _
                "Y" & Format(Range("A2").Value, "0.000") & _
                "Z" & Format(Range("A3").Value, "0.000"), ".000", ".")