テキストボックスの書式について

このQ&Aのポイント
  • マクロを作成している際、テキストボックスの値をセルに表示させると、書式が正しく反映されない問題があります。特に日付の書式がうまくいかない場合があります。解決方法をご教示ください。
  • テキストボックスに日付を入力した際に、セルに表示させると書式が正しく表示されない問題が発生しています。例えば、テキストボックスに「03月14日」と入力しても、セルに表示されるのは「3月14日」となります。どのようにすれば、入力した書式がそのままセルに表示されるようになるのでしょうか?
  • マクロを使ってテキストボックスの値をセルに表示させていますが、日付の書式が正しく表示されません。テキストボックスに「03月14日」と入力した場合、セルに表示されるのは「3月14日」となります。この問題を解決する方法を教えてください。
回答を見る
  • ベストアンサー

テキストボックスの書式について

例えばセルA1の書式が、分類:日付、種類:3月14日とします。(数字は半角) この場合、セルA1に03(全角)月14(半角)日と入力しても、3月14日(数字はすべて半角)と表示されます。 マクロを作成しているのですが、セルA1とテキストボックスの書式がどうしてもうまくいきません。 セルA1はUserform1内のTextbox1の値を取得します。 しかし、Textbox1の値をセルA1へ表示させると、セルA1と同じ書式に表示されません。 テキストボックスの値は文字列として扱われているようです。 Textbox1に03(全角)月14(半角)日と入力しても、3月14日(数字はすべて半角)と表示される方法はありませんか?

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

  • ベストアンサー
  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.3

na-chi21さん こんにちは。 ちょっと意味が分からない所がありますが、勝手に解釈して回答します。 Textbox1入力後、セルA1にセットする時は日付に変換する必要があります。  例)    Dim 日付 As Date   日付 = UserForm1.TextBox1   Range("A1") = 日付 Textbox1に表示する時はFormat関数で表示すれば良いと思います。  例)    UserForm1.TextBox1 = Format(Range("A1"), "m月d日")   注)入力後、日付の確認チェックが必要かと思います。

na-chi21
質問者

お礼

回答ありがとうございます。 遅くなり申し訳ありません。 jcctairaさんのおっしゃる通り、1つ目の例のようにするとできました。

その他の回答 (2)

  • spar
  • ベストアンサー率46% (35/75)
回答No.2

こんばんはー ちょっと意に沿わない回答かもしれません >Textbox1に03(全角)月14(半角)日と入力しても、3月14日(数字はすべて半角)と表示される方法はありませんか? この文面ではtextbox1に03(全角)月14(半角)日と入力(キーボードを打つと)すると、textbox1には3月14日と表示させたいに感じるのですが、どうでしょう? textbox1に03(全角)月14(半角)日と入力(キーボードを打つと)すると、セルA1に3月14日と表示させたいが私の見解なのですが・・・ もしそうであれば、Me.TextBox1.Value = Sheet1.Cells(1, 1).Text と Sheet1.Cells(1, 1).Value = Me.TextBox1.Value って書いてみたらどうなります? 的外れでしたらすみません。。。

na-chi21
質問者

お礼

回答ありがとうございます。 質問内容が分かりにくくてすいません。 sparさんの見解どおり、textbox1に03(全角)月14(半角)日と入力しCommandButton1を押すと、セルA1にtextbox1の文字が反映されるようにしたかったのです。 Me.TextBox1.Value = Sheet1.Cells(1, 1).Text と Sheet1.Cells(1, 1).Value = Me.TextBox1.Value で試してみましたが今回は残念ながらなりませんでした。

  • Gletscher
  • ベストアンサー率23% (1525/6504)
回答No.1

テキストボックスですから・・・ が回答だと思います。 テキストボックスはテキストを入れる場所であって、装飾文字を入れるものではないですから、”文字だけ”しか入りません。

na-chi21
質問者

お礼

それは承知で質問してます…

関連するQ&A

  • ユーザーフォーム内のテキストボックス内の書式設定

    A1セルに12.345と入力してあり、書式は「数値」で小数点以下の桁数2にしてあり、 「12.35」と表示されます。 VBAを起動して、ユーザーフォームを挿入し、 テキストボックスを作成し、 TextBox1の「ControlSource」にA1と入力すると TextBox1には「12.345」と表示されます。 エクセルのA1と同じ様に TextBox1も「12.35」と表示したいのですがどうすればいいのでしょうか? エクセル2003です。 よろしくお願い致します。

  • エクセルVBAユーザーフォーム「テキストボックス」「コンボボックス」の書式設定について

    ユーザーフォームを作成して、出荷実績を投入しようとしています。 現在、ユーザーフォームを作成して、 上から以下のようにボタンが並んでいます。 (1)コンボボックス1  商品コードと商品名を選択する。 (2)テキストボックス1~7  地域ごとの出荷実績を投入する。 (3)コマンドボタン1  決定→入力 (4)コマンドボタン2  終了 そして、以下3つの問題点がありますが、どのようにVBAを記述したら良いのか、わかりません。  a.コンボボックス1に表示される商品を商品コード   (アルファベット)と商品名で改行したい。   つまり「折り返して全体を表示する」ことは出来ないでしょうか。  b.「AAAA~」は5行目・「CCCC~」は7行目 といった   ように、商品ごとに値を投入する行を変更したい。  c.テキストボックス1~6の内容の合計が自動で(入力している   最中に)テキストボックス7に表示されるようにしたい。 次のようなVBAは記述出来たのですが、上記3つの要素を加えるには どのようにしたらよいのか、教えていただけないでしょうか? ちなみに入力する順番は次のようになっています。(設定済み) M4→L4→J4→K4→H4→I4 →M5→L5→J5→K5→H5→I5 ------------------------------------------------------------- ’フォームを表示させる。 Sub formdsp() UserForm1.Show End Sub ’フォーム内容 Dim cnt As Integer Private Sub Combobox1_Change() End Sub '入力ボタン Private Sub CommandButton1_Click() With ActiveSheet .Cells(cnt, 13) = TextBox1.Text .Cells(cnt, 12) = TextBox2.Text .Cells(cnt, 10) = TextBox3.Text .Cells(cnt, 11) = TextBox4.Text .Cells(cnt, 8) = TextBox5.Text .Cells(cnt, 9) = TextBox6.Text .Cells(cnt, 15) = TextBox7.Text cnt = cnt + 1 .Cells(cnt, 13) = Activate End With UserForm1.TextBox1.Text = "" UserForm1.TextBox2.Text = "" UserForm1.TextBox3.Text = "" UserForm1.TextBox4.Text = "" UserForm1.TextBox5.Text = "" UserForm1.TextBox6.Text = "" UserForm1.TextBox7.Text = "" UserForm1.Combobox1.Text = "" UserForm1.TextBox1.SetFocus End Sub '終了ボタン Private Sub CommandButton2_Click() Unload Me End End Sub 'コンボボックス Private Sub userform_initialize() cnt = 4 With UserForm1.Combobox1 .AddItem "AAAA 11111111111" .AddItem "BBBB 22222222222" .AddItem "CCCC 333333333" .AddItem "DDDD 444444" .AddItem "EEEE 5555555555" .AddItem "FFFF 666" .AddItem "GGGG 7777777" .AddItem "HHHH 88888" .AddItem "IIIII 999999999" .AddItem "JJJJ 0000000000000" .AddItem "KKKK 1111" .AddItem "LLLL 222222" .AddItem "MMMM 3333" End With End Sub

  • Excelでセル検索したセルの色をテキストボックスに表示

    セル検索した結果をテキストボックスに表示する時、文字は表示できましたが、セルの色もテキストボックスに表示したいのですが、何処を修正したらいいのか分かりません。 教えてください。 宜しくお願いします。 Sub AAA() strMoji$ = UserForm1.TextBox1.Text If UserForm1.TextBox1.Text = "" Then MsgBox "検索条件を入力してください。", 48 Exit Sub End If On Error GoTo Fail Worksheets("Sheet1").Range("a:a").Find(What:=strMoji, After:=ActiveCell, LookIn:=xlValues, LookAt:= _ xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ ).Activate lonNUM& = Selection.Row UserForm1.TextBox2.Text = Cells(lonNUM, 2).Value UserForm1.TextBox3.Text = Cells(lonNUM, 3).Value UserForm1.TextBox4.Text = Cells(lonNUM, 4).Value UserForm1.TextBox5.Text = Cells(lonNUM, 5).Value UserForm1.TextBox6.Text = Cells(lonNUM, 6).Value UserForm1.TextBox7.Text = Cells(lonNUM, 7).Value UserForm1.TextBox8.Text = Cells(lonNUM, 8).Value Exit Sub Fail: MsgBox "該当なし", 48 End Sub

  • エクセルVBAテキストボックスをシートに…

    TextBox1に会社名、TextBox2に商品名、TextBox3に金額、TextBox4と5にも商品名と金額を入力するとして、   A  B  C 1 会社 商品 金額 2 上みたいにシートに表示させたいのですが、TextBox4と5が入力されている場合はB2、C2にも値が入り、新しくテキストボックスに入力をしたときはその下のセルに表示されるようにしたいです。 分かりにくい説明ですが宜しくお願いします。

  • ExcelVBA テキストボックスについて

    フォーム上100個のテキストボックスがあります このテキストボックスに入力制限を加えたいのですが、どのように書けばよろしいでしょうか?  ・半角数字だけしか入力できない(計算に使う)  ・入力すると、1,234,567のような表示になり、右詰め  ・10桁までしか入力できない  ・予定の計算結果だと、10億を超えない  ・計算結果は数字が入力されるたびLabel1に表示される 私の作ったマクロだと、全てのテキストボックスに同じようなマクロを登録する結果になってしまい、これってもっと短くかけるのでは?と思い、質問いたしました よろしくおねがいします

  • ユーザーフォームのテキストボックスの書式設定について

    ユーザーフォームのテキストボックスの書式設定について TextBox1に金額、TextBox2に日付を入力し、Sheet1に転記するような フォームを作っています。 TextBox1には、 Private Sub TextBox1_Change() y = TextBox1.Text TextBox1.Text = Format$(CLng(y), "#,##0") End Sub としています。 TextBox2には、書式をH○○.○.○という設定にしたいのですが、 どのようにしたらよいでしょうか。

  • テキストボックスのフォントが変わってしまいます。

    PPT2002を使用しています。 テキストボックスで「特殊文字」を半角で挿入すると、 なぜかフォントが全角の日本語フォントになってしまいます。 μ(マイクロ)などのギリシャ文字が入力できず困っています。 また、PPT2000で作成したファイルのテキストボックスの半角フォントもすべ て全角で表示されてしまいます。 何が悪いのかさっぱり分かりません。 よろしくお願いします。

  • テキストボックス内の簡単な計算

    はじめまして、よろしくお願いいたします。 エクセル(2003)のマクロで質問です。 いくつか複数のテキストボックスが配置されています。 加算など簡単な計算をテキストボックス内で計算させていおいて、 最終的にボタンで、それら各々のテキストボックスに対応させた エクセルのシートのセルに代入させようとしています。 さて、テキストボックス内で簡単な計算をさせるため、 Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) TextBox1.Text = Evaluate(TextBox1.Text) End Sub Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean) TextBox2.Text = Evaluate(TextBox2.Text) End Sub Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean) TextBox3.Text = Evaluate(TextBox3.Text) End Sub … とさせましたが、 何も入力がないテキストボックスは そのままなにもしなくていいよ、とさせたいですのですが、 上記のままだと、何もない(値が入力されていない) テキストボックスに到達すると 止まります。 何も入力がないテキストボックスは 何もしなくていいよ、は どうしたらよいでしょうか? 誠に不勉強で恐縮ですが ご教授願います。

  • VBA テキストボックスで計算

    VBAの勉強を始めたばかりで、見よう見まねで色々作っています。 ユーザーフォームのテキストボックスに、計算結果を表示したいのですが、行き詰まってしまいました。 textbox1 textbox2  .  .  textbox5 があり、textbox6に、1~5に入力された数字を足して、消費税額が出るようにしたいです。 例えば textbox1・・・100,000 textbox2・・・200,000 と入っていたら textbox6に 【消費税額 15,000円】 と表示させたいです。 textbox1~5は、1から順番に数字を入れていきますが、全てに入るとは限りません。 不足情報等がありましたら、ご指摘下さい。 ご教授の程、よろしくお願いします。

  • セルの値を1桁ずつ、テキストボックスへ

    幾つかの値が入力されたセルから1桁ずつ取り出して、テキストボックスへバラバラに表示させたいのですが・・・よろしくお願いします。 例えば1234567等の7桁の値が入力されたセルがあって、それを指定したテキストボックスへ1、2、3、4、5、6、7と7つのテキストボックスへ表示させたいのです。 セルからセルだったらMID(A1,1,1)で“1”を取得できますが、これをテキストボックスで取得したいのです。 事前にセルで取得してテキストボックスとリンクさせていたのですが、元のデータが変わるたびにやり直さないといけないので、テキストボックスから直接取得させたいのですが、何か良い方法がありましたら宜しくお願いします。