過去ログ

                                Page     773
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼テキストボックスに生年月日を入力する方法  ゆみゆみ 03/2/18(火) 23:35
   ┗Re:テキストボックスに生年月日を入力する方法  Jaka 03/2/19(水) 11:36
      ┗Re:テキストボックスの表示形式  ゆみゆみ 03/2/19(水) 14:01
         ┗う〜ん。  Jaka 03/2/19(水) 15:25
            ┗Re:お手間かけました  ゆみゆみ 03/2/19(水) 16:07
               ┗Re:お手間かけました  ポンタ 03/2/20(木) 9:20

 ───────────────────────────────────────
 ■題名 : テキストボックスに生年月日を入力する方法
 ■名前 : ゆみゆみ
 ■日付 : 03/2/18(火) 23:35
 -------------------------------------------------------------------------
   こんばんわ、はじめてこちらにおじゃまします。
最近VBAに興味を持ち、挑戦しているところです。
今ユーザーフォームに挑戦しています。
御指導願います。

テキストボックスに生年月日を和暦で入力して、ワークシートに
表示させたいのですが・・・
和暦入力の方法がわからずにつまづいてしまいました。

例えば、1つのテキストボックス内をあらかじめ __/__/__ というように2桁ずつ区切っておき、生年月日を”500927”入力すると
テキストボックス内は 50/09/27と表示され、
シートには昭和50年9月27日と表示させるといった具合です。
このようなことは可能でしょうか?
また、年号は別のボックスで指定が必要なのでしょうか?

質問の方法も要領を得ず、わかりづらいかとも思いますが、
アドバイスよろしくお願い致します。
 ───────────────────────────────────────  ■題名 : Re:テキストボックスに生年月日を入力する方法  ■名前 : Jaka  ■日付 : 03/2/19(水) 11:36  -------------------------------------------------------------------------
   こんにちは。
年号の判定はしていませんので、昭和75年なんて事にもなっちゃいますが。
単純に分解して、文字をつなげただけです。
セルに入れても日付として扱われません。

Private Sub CommandButton1_Click()
  wd = Application.WorksheetFunction.Substitute(TextBox1.Value, "/", "")
  Range("A1").Value = "昭和" & Int(Left(wd, 2)) & "年" & Int(Mid(wd, 3, 2)) & _
            "月" & Int(Right(wd, 2)) & "日"
End Sub

Private Sub TextBox1_Change()
  If Len(TextBox1.Value) = 6 And Right(TextBox1, 1) <> "/" Then
    wd = TextBox1.Value
    TextBox1.Value = Left(wd, 2) & "/" & Mid(wd, 3, 2) & "/" & Right(wd, 2)
  End If
End Sub

Private Sub UserForm_Initialize()
  TextBox1.SetFocus
End Sub
 ───────────────────────────────────────  ■題名 : Re:テキストボックスの表示形式  ■名前 : ゆみゆみ  ■日付 : 03/2/19(水) 14:01  -------------------------------------------------------------------------
   申し訳ありません、私の質問の仕方が間違っていました。
せっかくアドバイスをいただいたのに・・・すみません。

ユーザーフォームを使ってお客様の情報を入力し、コマンドボタンを
押すことでシートに記載するといった流れです。

ユーザーフォーム上で
生年月日(和暦)を入力すると、隣にある年齢テキストボックスに満年齢が出るように
したいと思っています。

例えば、昭和50年5月1日生まれであれば、
50/05/01と入力→昭和50年5月1日(とテキストボックスに表示される)
(スラッシュなしで打ち込む方法もありますでしょうか?)
また、テキストボックスと同じ表示形式でシート(セル)にも表示したいのですが
うまくいきません。
本では、西暦表示のものばかりで。。。
とても初歩的なことだとは思いますが、行き詰まってしまいました。
どうぞ宜しくお願いいたします。
 ───────────────────────────────────────  ■題名 : う〜ん。  ■名前 : Jaka  ■日付 : 03/2/19(水) 15:25  -------------------------------------------------------------------------
   日付と時間関係はほとんど無知です。
和暦と西暦の変換を使うと思うんですけど...。

もう少し考えてみます。
その前に、角田さんとおっしゃる方が回答してくれると思います。
参考までに

http://www.h3.dion.ne.jp/~sakatsu/index.htm
 ───────────────────────────────────────  ■題名 : Re:お手間かけました  ■名前 : ゆみゆみ  ■日付 : 03/2/19(水) 16:07  -------------------------------------------------------------------------
   Jaka さん
たいへんお手間をおかけしてすみませんでした。

入力自体に手間をかけないようにと思い、安易にユーザーフォームに
飛びついてしまったのですが、自分の知識と能力がまったく追いついていない
状態です(苦笑)
本当に難しいですね・・・

リンク先を参考にしてみます。
いろいろとありがとうございました。

また何かありましたらお願いします。
 ───────────────────────────────────────  ■題名 : Re:お手間かけました  ■名前 : ポンタ  ■日付 : 03/2/20(木) 9:20  -------------------------------------------------------------------------
   遅レスですが、
テキストボックスではなく、コンボボックスから選択するように
してみてはいかがですか?

以下の手順でやってみてください。

まず、「Sheet1」のA1〜A64に 昭和1年〜昭和64年
         A65〜A79に 平成1年〜平成15年
         B1〜B12に 1月〜12月
         C1〜C31に 1日〜31日と入力しておきます。

UserFormにComboBox1、ComboBox2、ComboBox3とTextBox1を作成し、
ComboBox1のRowSourceプロパティを「Sheet1!A1:A79」
ComboBox2のRowSourceプロパティを「Sheet1!B1:B12」
ComboBox3のRowSourceプロパティを「Sheet1!C1:C31」に設定します。

最後に、以下のコードをフォームモジュールに貼り付けてください。

Private Sub ComboBox1_Change()
  Call 満年齢
End Sub
Private Sub ComboBox2_Change()
  Call 満年齢
End Sub
Private Sub ComboBox3_Change()
  Call 満年齢
End Sub
Private Sub 満年齢()
  If ComboBox1.ListIndex <> -1 And ComboBox2.ListIndex <> -1 And ComboBox3.ListIndex <> -1 Then
    TextBox1.Value = Int(DateDiff("d", ComboBox1.Value & ComboBox2.Value & ComboBox3.Value, Date) / 365.25)
  End If
End Sub

年、月、日すべてが選択されると、満年齢が表示されます。

PS1.シート名は適当に変更してください。
PS2.DateDiffの使い方がいまいち分かってないので
  閏年の計算で間違えるかもしれません。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 773