0

次のように値をフォーマットしたいTextBox1

  1. 括弧なしの (RM) で表したマレーシアの通貨リンギット
  2. 小数点以下 2 桁にします。例: RM 10.00
  3. ユーザーが値を入力していない場合でもフォーマットが表示されるようにします。TextBox1例: RM 0.00
  4. ユーザーは整数のみを入力できます。たとえば、ユーザーが で 1234 と入力するとTextBox1TextBox1値が RM 0.00 から RM 12.34 に変更されます。ユーザーは「.」を押す必要はありません。整数は前に移動します。たとえば、RM 0.01 -> RM 0.12 -> RM 1.23 -> RM 12.34 ユーザーとして RM 1234 を押しTextBox1ます。

私の質問のどこかに誤解がある場合は、お知らせください。訂正します。よろしくお願いします。

4

1 に答える 1

0

まず:数値の形式は簡単です。[数値形式] ダイアログ ボックスを開き、次の文字列を使用してカスタム形式を作成します。

"RM"#,#0.00

2 番目:空のセルをゼロとして表示するには、2 つのオプションがあります。

  1. セルが数式またはデータの結果である場合は、数式を使用できます。例: =if(A1="",0,A1) これは、空でない限り A1 の値を取ります。空の場合は 0 になります。
  2. また、ファイル タブのオプションの下にすべてゼロの値を表示するようにワークシートを設定することもできます。

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」などの値を入力した場合に、「無効な入力」メッセージ ボックスが表示されなくなります。残念ながら、現時点ではそのコードを書き出す時間がありません。

于 2013-01-04T14:52:00.093 に答える