• ベストアンサー

EXCEL・VBAフォームの日付(表示形式を変更したい)

VBA初心者です。フォームの中にテキストボックスを作成しています。規定値にあるシートのセルを表示しています。このセルは日付(西暦4桁)で入力しているのですがテキストボックスでは(西暦2桁)で表示されてしまいます。 FORMATというのを使用すればよいようなのですがどうつかえばいいのかわからないのです。 プロパティでテキストボックスのコントロールソースにそのセルを指定しています。 どのように記述すればよいでしょうか。 詳しい方教えていただけますでしょうか。 よろしくお願いいたします。

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

  • ベストアンサー
  • TTak
  • ベストアンサー率52% (206/389)
回答No.2

tomoitiさんこんにちは 単純にセルの表示を反映させたいのであれば、Textプロパティを使用します。 例)TextBox1にセルA1の表示を転記する。 TextBox1.Value = Range("A1").Text ただし、表示の転記ですから、セルが"####"になったら、テキストボックスも"####"となります。

tomoiti
質問者

お礼

お礼が遅くなりました。申し訳ありません。 やってみたところ、出来ました。 FORMATを使わなくてもできるなんてしりませんでした。 ちょっとVBが身近になったきがします。 どうもありがとうございました。

その他の回答 (1)

  • anan2001
  • ベストアンサー率16% (1/6)
回答No.1

ん?こういう事ですか?? テキストボックス = Format(規定値にあるシートのセル,"yyyymmdd") データ型に変換した方がいいかな。。(規定値にあるシートのセル)

参考URL:
http://www2s.biglobe.ne.jp/~iryo/
tomoiti
質問者

お礼

早速のお返事ありがとうございます。 ちょっとがんばってやってみます。 どうにも私がやるとうまくいかないもので・・・。 またよろしくおねがいします。

関連するQ&A

  • VBA publicで日付が呼び出せない

    VBAにて、ユーザーフォーム上のテキストボックスに初期値として今日の日付が入力されており、さらにそれを任意で変更することも出来、最終的なテキストボックスの値を変数に格納するというマクロを作成しようとしています。 'テキストボックス2の初期値を今日の日付とする Private Sub UserForm_Initialize() TextBox2.Text = Format$(Date, "yyyy/mm/dd") 'テキストボックス2の値が日付かどうかチェック Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) If IsDate(TextBox2.Value) Then DenpyouDate = TextBox2.Value Else TextBox2.Value = "" MsgBox ("日付が不正です") TextBox2.Text = Format$(Date, "yyyy/mm/dd") End If End Sub '他のモジュールでdenpyoudateを使用し、指定のセルに和暦形式で入力する Public DenpyouDate As Date Sheets("伝票").Range("A10").Value = Format(DenpyouDate, "e") Sheets("伝票").Range("C10").Value = Format(DenpyouDate, "m") 「ユーザーフォームのテキストボックスに初期値として日付を表示させ、その最終的な値を変数として格納、別のモジュールで呼び出してセルにセットする」というイメージです。 このマクロを実行した際、初期値である今日の日付を任意の日付に変更した場合は、問題なくそのままの値がセルにセットされるのですが、初期値のまま実行すると、その数値が反映されません。 ローカルウィンドウをチェックすると、ユーザーフォームの時点では、テキストボックスの初期値がきちんとdenpyoudateに格納されているのですが(例:2009/11/24)、それを別モジュールで呼び出した時は、denpyoudateの値が(#0:00:00#)になっており、これが原因だと考えています。 このエラーを回避し、初期値の場合でも値がきちんとセルにセットされるようにするには、どうしたらよいでしょうか?

  • ACCESSのフォームに本日の日付を西暦表示したいです。

    ACCESSのフォームに本日の日付を西暦表示したいです。たとえば・・・ 平成16年5月20日  という感じで・・・ どなたか教えてください・ テキストボックスを使っています。

  • VBAフォームのテキストボックスに初期値を表示するには?

    VBAのフォームのテキストボックスに、初期値としてフォームを開いた当日の日付を表示したいのです。 開いたときは今日の日付が既に表示されていて、必要に応じて書き換える、そんなふうにしたいのですが。

  • VBA_カレンダーコントロールの和暦表示

    現在、フォーム上にカレンダーコントロールを作成して クリックされた日付をテキストボックスに返すものを作成しているのですが カレンダーコントロールの年の表示は西暦になっています。 この部分を和暦にしたいのですが、いじくるところがまったく見当たりません。 何か方法はあるのでしょうか? ご教授お願いいたします<(_ _)>

  • VBAユーザーフォームで

     エクセルVBAでユーザーフォームより、テキストボックスで入力させたものをセルに表示させようとしています。  テキストボックスは1と2があり、テキストボックス1で入力した値の最初の5文字+固定値をテキストボックス2に自動で入力(表示)したいのですがなかなかうまくいきません。(自動入力後、手動で一部修正します。)  VBAをはじめたばかりの初心者ですが、どうぞよろしくお願いします。

  • 今日の日付の個数をフォーム上のテキストボックスに表示したい

    http://oshiete1.goo.ne.jp/qa5082418.html の続きです。よろしくお願いします。 クエリで今日の日付の個数を求めることができました。 今回は、「今日の日付の個数」を をフォーム上のテキストボックスに表示したいです。 コントロールソースにはどのように記載すればいいのでしょうか? そもそも「Count」なのか「DCount」を使うのかわかりません。 クエリで作ったSQL文をそのままコントロールソースに貼り付けてみましたが、「#Name?」が表示されてしまいました。 ご教授よろしくお願い致します。

  • エクセルVBA テキストボックス 日付表示

    エクセルVBAにて入力用フォームを開いたときに フォーム内にあるテキストボックスに今日の日付が 自動で表示されるようにしたいのですが どの様に書き込めば宜しいでしょうか? また、2008.09.05 平成20年9月5日などの 日付形式の変更はどの様に書き込むのでしょうか?

  • excel VBA フォームを使って

    初歩的な質問だと思いますが、教えていただけますでしょうか。 excelのVBAを使って、ユーザフォームを作ります。 そこにカレンダーコントロールでいわゆる「カレンダー」を作成し、 その下にテキストボックス(ちょっと大きめ)を作ります。 カレンダーをクリックし、テキストボックスにスケジュールが表示されるというものを作りたいです。 現在ワークシートには、scheduleというものだけを作成し、そこには日付とスケジュールを書き込んでいる状況です。 スケジュールは1行のみとは限りません。複数行のほうが多いです。 お忙しいところ申し訳ありませんが、よろしくお願いします。

  • vbaで列を非表示にする方法はありますか?(フォームのデータシートビュー)

    手動でちまちま「列を表示しない」をすると稼動がかかるので VBAで列を非表示にしたり、表示したりしたいのですがどうすればいいのでしょうか? フォームのデザインビューでテキストボックスのプロパティの可視を「いいえ」にして フォームを開いても列が表示されてしまいます。 ご存知の方がいらっしゃいましたら、教えてください。

  • 年号表示を西暦と和暦のハイブリットにした

    フォーム上にテキストボックスを配して、西暦、和暦、曜日などを個別のテキストボックスで表示させています。これをひとつのテキストボックス又はふたつのテキストボックスで表示させたいと思っています。尚、テキストボックスは非連携「当日表示のみ」を前提とします。 [やっていること] 1,西暦表示は テキストボックスのプロパティーで「コントロールソース」にて「式ビルダ」を起動させ、「関数」で「組み込み関数」を選び「日付/時刻」の「=Date()」を選択。 2,和暦表示は 上記「1」の操作後、プロパティーの書式タブの「書式」gggee\年mm\月dd\日をコピー&ペーストしています。 3,曜日は テキストボックスのプロパティーで「コントロールソース」で「式ビルダ」を起動させ、関数」で「組み込み関数」を選び「日付/時刻」の「=Date()」を選択。エディターで「=WeekdayName(Weekday(Date()))」を作成し「貼り付け」を選択する。 [やりたいこと(可能ならIIが希望)] I,1(西暦)と2(和暦)をひとつのテキストボックスで表示させたい。例えば、テキストボックスをクリックする度に表示が変えられる。曜日は別のテキストボックスで表示させる。   II,1(西暦)と2(和暦)と3(曜日)をひとつのテキストボックスで表示させたい。例えば、テキストボックスをクリックする度に表示がループ式に変えられる。 以上ですが、ご指導宜しくお願いします。

専門家に質問してみよう