• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:¥マークがダブります。)

Excel VBAのコードで転記時に¥マークが二つ表示される問題の解決方法

このQ&Aのポイント
  • Excel VBAのコードで転記時に¥マークが二つ表示される問題が発生しています。具体的には、2回目以降の入力で最終行の1行次の行を選択する部分で、テキストボックスの内容に「¥」を追加する処理が含まれるため、転記時に¥マークが二つ表示されてしまいます。
  • 解決方法としては、上記のコードの特定の部分を修正する必要があります。具体的には、テキストボックスの内容に「¥」を追加する処理を削除することで、テキストのみの内容で転記することができます。
  • 間違っている部分は、2回目以降の入力で最終行の1行次の行を選択する部分で、「¥」を追加する処理が重複していることです。これが原因で転記時に¥マークが二つ表示されてしまいます。処理の重複を避けるために、追加する処理を削除する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

For myArray = 0 To 1   With Selection     TextBox1 = TextBox1.Value     TextBox2 = "¥" & TextBox2.Value     .Offset(, myArray) = varRag(myArray)   End With Next myArray ここでループしていますから TextBox2 が 2000 の場合、最初のループで TextBox2 は "¥2000" になり、次のループで "¥¥2000" になります。 そもそも、TextBox1 = TextBox1.Value の処理も何を意味しているのか不明です。TextBox1にTextBox1のValue値を代入しても意味が無いような、、、 また、「¥」を付けて文字列化してしまっては、その後の計算に差し支えるような気がします。 少し書き換えましたのでご参考に。 Private Sub CommandButton4_Click() Dim r As Range With ActiveSheet   If TextBox1 = Empty Then     'テキストボックス1に名前を入力しないで登録を押した時に出すエラーメッセージです。     MsgBox "Text1は科目を入力して下さい。", vbCritical, "エラー"     Exit Sub   End If      If Not IsNumeric(TextBox2) Then     'テキストボックス2に数値を入力しないで登録を押した時に出すエラーメッセージです。     MsgBox "Text2は数値を入力して下さい。", vbCritical, "エラー"     Exit Sub   End If     '初めて入力される場合は、最初の行を選択します。   If .Range("A16") = Empty Then     .Range("A16").Value = TextBox1.Value     .Range("A16").Offset(0, 1).Value = TextBox2.Value     .Range("A16").Offset(0, 1).NumberFormatLocal = "\#,##0;[赤]\-#,##0"   Else     '2回目以降の入力であれば最終行の1行次の行を選択します。     Set r = .Range("A65536").End(xlUp).Offset(1)     r.Value = TextBox1.Value     r.Offset(0, 1).Value = TextBox2.Value     r.Offset(0, 1).NumberFormatLocal = "\#,##0;[赤]\-#,##0"   End If   'テキストボックスをすべて初期化します。   TextBox1 = ""   TextBox2 = ""   TextBox1.SetFocus    End With End Sub

m_boy
質問者

お礼

とても参考になりました。有難うございました。

すると、全ての回答が全文表示されます。

関連するQ&A

専門家に質問してみよう