重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

いつもお世話になります。
OSはwin10 エクセルは2016 です。

UserFormの基本構文が下記です。

'設定
'****************
Private Sub CommandButton1_Click()
'
y = 2
Do While Cells(y, 2) <> ""

Loop
Cells(y, 1) = TextBox1.Text
Cells(y + 8, 3) = TextBox2.Text
Cells(y + 10, 8) = TextBox3.Text
Cells(y + 13, 3) = TextBox4.Text
Cells(y + 13, 6) = TextBox5.Text
Cells(y + 13, 7) = TextBox6.Text
Cells(y + 32, 2) = TextBox7.Text

TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""

TextBox1.SetFocus
End Sub


参照図で説明しますと、
「作業担当者」 「2」 と入れると 「田中 敏夫」
「宛先」    「4」 と入れると 「経理課御中」

にするにはどうすればいいかご教授いただけませんでしょうか。
よろしくお願いいたします。


※参考に
TExtBox3 にいれるには
If Target.Value = 0 Then Target.Value = Empty
If Target.Value = 1 Then Target.Value = "種田 正勝"
If Target.Value = 2 Then Target.Value = "田中 敏夫"
If Target.Value = 3 Then Target.Value = "種田正勝/田中敏夫"

TextBox7 に入れるには
If Target.Value = 4 Then Target.Value = "経理課御中"
If Target.Value = 5 Then Target.Value = "担当係殿"
If Target.Value = 6 Then Target.Value = "経理担当殿"
If Target.Value = 7 Then Target.Value = "担当者殿

「UserFOrmのTextBoxに数字を」の質問画像

質問者からの補足コメント

  • つらい・・・

    ご指導がよく理解ままにいろいろ試しました。
    具体的に再度ご指導いただけませんでしょう。

    ※文字数の制限があって説明ができずこまっています。

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/12/08 15:38

A 回答 (4件)

「TextBox」となっているように戻り値は文字列になります。



例えば
「Cells(y, 1) = TextBox1.Text」を「Cells(y, 1).Value = TextBox1.Text」にするか「If Target.Value = 0 Then Target.Value = Empty」を「If Target.Value = "0" Then Target.Value = Empty」にすればよいのでは?
この回答への補足あり
    • good
    • 0

そもそもですが、決まった値を入力したいのならば「TextBox」ではなく「ListBox」の方が使いやすいです。

以下を参考にしてください。
http://officetanaka.net/excel/vba/tips/tips137.htm
    • good
    • 0
この回答へのお礼

いろいろご指導を参考に試してみましたが、
私には無理なので今リストボックスに変更して完成しました。

ご指導いただきなから変更したのは大変失礼かと思いますがお許しください。
ありがとうございました。

お礼日時:2017/12/08 16:42

まず、何をやりたいのだかを言葉で提示してください。

No.2で言っている事で良いのならそう言ってくれないと全然勘違いを繰り返してしまう可能性が高いです。
よく今回のようにコードだけ提示してうまく動かないという方がいらっしゃいますが、うまく動かないコードでは、正常な場合どうなるかが回答者には判りません。
    • good
    • 0

No.1 の訂正



よく読んでみると、僕が勘違いしているようです。すみませんでした。
作業担当者の欄に「種田 正勝」ではなく「1」と入力しても「種田 正勝」と自動で変換したいと言う事ですよね。

それでしたらテキストボックスのそれぞれの「Change」イベントにコードを入れれば良いと思います。
例えば、作業担当者の欄(TextBox3)ならば
--------------------------------------------------------------------------------
Private Sub TextBox3_Change()
Application.EnableEvents = False
Select Case TextBox3.Value
Case 0
TextBox3.Value = ""
Case 1
TextBox3.Value = "種田 正勝"
Case 2
TextBox3.Value = "田中 敏夫"
Case 3
TextBox3.Value = "種田正勝/田中敏夫"
End Select
Application.EnableEvents = True
End Sub
--------------------------------------------------------------------------------
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!