まず:数値の形式は簡単です。[数値形式] ダイアログ ボックスを開き、次の文字列を使用してカスタム形式を作成します。
"RM"#,#0.00
2 番目:空のセルをゼロとして表示するには、2 つのオプションがあります。
- セルが数式またはデータの結果である場合は、数式を使用できます。例: =if(A1="",0,A1) これは、空でない限り A1 の値を取ります。空の場合は 0 になります。
- また、ファイル タブのオプションの下にすべてゼロの値を表示するようにワークシートを設定することもできます。
3 番目 (そして最後):小数点以下の自動配置に関しては、これは珍しいことではありません。このチュートリアルの手順に従ってください。
Excelで小数点を自動的に挿入する方法
これがお役に立てば幸いです、頑張ってください!
編集:
一見したところ、セルの書式設定について助けが必要だと思いましたが、VBA ユーザーフォーム内のテキスト ボックス コントロールやワークシート自体について助けが必要です。このタスクを実行するために必要なツールは、定型入力です。ただし、私が理解していることから、現在、VBA ユーザーフォームにはこれに対する組み込みのサポートはありません。ユーザーがボックスを変更または終了したときにこれを行うコードを作成できます。
最初に入力を検証して数値であることを確認してから、目的の形式に一致するように値を変更するコードを終了することをお勧めします。以下に例を示します。
Private Sub myTextbox_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim myVal As String
myVal = Trim(myTextbox.Value)
If myVal = "" Then Exit Sub 'Ignore this subroutine if the box is empty.
If IsNumeric(myVal) = False Then 'If the input is not a number, ask for correct input.
MsgBox "Please enter a number value."
myTextbox.SetFocus
Exit Sub
ElseIf InStr(1, myVal, ".", vbTextCompare) > 0 Then 'If the input includes decimal, use it.
myTextbox.Value = "RM " & Format(myVal, "#,##0.00")
ElseIf InStr(1, myVal, ".", vbTextCompare) = 0 Then 'If the input doesn't include decimal, enter one and divide by 100.
myTextbox.Value = "RM " & (Format(myVal, "#,##0.00") / 100)
End If
End Sub
そして、本当に凝りたい場合は、最初に「RM」の入力を検索できます。これにより、ユーザーが「RM 123.45」などの値を入力した場合に、「無効な入力」メッセージ ボックスが表示されなくなります。残念ながら、現時点ではそのコードを書き出す時間がありません。