Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8897 / 13646 ツリー ←次へ | 前へ→

【30458】テキストボックスから西暦や和暦の入力方法 MokoMoko 05/10/27(木) 22:13 質問[未読]
【30463】Re:テキストボックスから西暦や和暦の入力... [名前なし] 05/10/27(木) 23:06 回答[未読]

【30458】テキストボックスから西暦や和暦の入力方...
質問  MokoMoko  - 05/10/27(木) 22:13 -

引用なし
パスワード
   欲張った質問で失礼します。一つでも結構ですのでお願いします。

1.テキストボックスから西暦を入力して、セルに反映させる方法を教えてください。

2.西暦から和暦に変換してセルに反映させる方法で簡便な方法はあるでしょうか。
現在エンターを2度叩いて初めて動作しますが、1度押しで済ませる方法が無いでしょうか。(コマンド釦は1回ですみますが、エンターキーの方が早いものですから)
現在は次のようなコードを使っています。

Private Sub CommandButton1_Click()
TextBox1 = Format(TextBox1.Value, "ggge""年""mm""月""dd""日""")
 'Label1 = TextBox1
With Range("C65536").End(xlUp).Offset(1, 0)
     .Value = TextBox1.Value
End With
End Sub

3.テキストボックスで棒打ちで数字の入力をして、セルに西暦を反映させる方法があるでしょうか。
(具体的には051127を2005/11/27にしてセルに反映させるようなことです)

【30463】Re:テキストボックスから西暦や和暦の入...
回答  [名前なし]  - 05/10/27(木) 23:06 -

引用なし
パスワード
   1,2,3の回答を組み合わせたらこんな感じ?

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim InputDate As String

  If TextBox1.Value = "" Then Exit Sub
  
  InputDate = Format(TextBox1.Value, "00/00/00")
  
  If IsDate(InputDate) Then
    If Format(CDate(InputDate), "yy/mm/dd") = InputDate Then
      Range("A1").Value = CDate(InputDate): Exit Sub
    End If
  End If
  
  MsgBox "入力エラー", vbCritical
  Cancel = True: TextBox1.Value = ""
End Sub

わからないところはヘルプで調べてみてください。

8897 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free