[[20200903113939]] 『VBAにて負の数字を▲表記にしたい』(ピノ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAにて負の数字を▲表記にしたい』(ピノ)

いつもお世話になっております。

excelの30列目・最終セルまでを確認し、
表示の数値が0以下であった場合、
現在-と表示されている数値を、
▲で表示したいです。

例 -3,000→▲3,000

下記のイメージなのですが、▲で表す部分の構文がわからず、
ご教授いただけないでしょうか。

下記構文以外にも、置換のreplaceを使用した見たのですが、
数値がNAME?に代わってしまい、
うまくいきませんでした。

Sub データ加工_05()
i = Cells(Rows.Count, 1).End(xlUp).Row
For j = 3 To i

        If Cells(j, 30) < 0 Then
         Format (cells(j,30), "#,##0;[赤]"▲ "#,##0")
        End If
       Next
	End Sub

< 使用 Excel:Excel2016、使用 OS:Windows10 >


[[20200903093805]] 『VBA 月別フォルダ作成』(ピノ) >>BOT

 前の終わらせてからにしたほうがいいですよ
(稲葉) 2020/09/03(木) 11:46

 マクロ記録したらこんなんでしたけどね。
 因みに表示形式です。

 Selection.NumberFormatLocal = "#,##0;[赤]▲#,##0"
(BJ) 2020/09/03(木) 12:32

 >数値がNAME?に代わってしまい

 この件は、数値に余計な文字を付けくわえたら、それは数値ではなく文字だから・・・。
(BJ) 2020/09/03(木) 12:35

 ああ、NAME? か、↑間違いです。
(BJ) 2020/09/03(木) 12:45

私も、単純にセルの値が0以下だったら、【表示形式】を変更とするか・・・・
    Sub データ加工_05_改()
        Dim j As Long

        For j = 3 To Cells(Rows.Count, 1).End(xlUp).Row
            If Cells(j, 30).Value < 0 Then
                Cells(j, 30).NumberFormatLocal = "#,##0;[赤]▲#,##0"
            End If
        Next
    End Sub

対象となるセル範囲の【表示形式】をすべて変えちゃうか

    Sub 別案()
        With ActiveSheet
            .Range("AD3:AD" & .Cells(.Rows.Count, 1).End(xlUp).Row).NumberFormatLocal = "#,##0;[赤]▲#,##0"
        End With
    End Sub

どちらかでいいような気がします。

(もこな2 ) 2020/09/03(木) 13:17


もこな2様、BJ様、稲葉様
いつもありがとうございます!
Number Format localで出来ました。
助かりました…
構文を見たい時にマクロの記録を活用できるんですね!
VBAを直接書きたいという頭が先行して、マクロの記録の存在を忘れていました…

(ピノ) 2020/09/03(木) 19:06


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.