Excel VBA質問箱 IV

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

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


9544 / 13644 ツリー ←次へ | 前へ→

【26790】テキストボックスで日付を入力するには miho 05/7/18(月) 11:41 質問[未読]
【26791】Re:テキストボックスで日付を入力するには りん 05/7/18(月) 11:57 回答[未読]
【26793】Re:テキストボックスで日付を入力するには miho 05/7/18(月) 13:10 お礼[未読]

【26790】テキストボックスで日付を入力するには
質問  miho  - 05/7/18(月) 11:41 -

引用なし
パスワード
   テキストボックスに日付を入力してもらい、エクセルシートに表示するマクロを作成していますが、人によって入力方法が違います。
エクセルシートにはe.mm.dd(17.07.18)と表示させたいのですが17.07.18と入力する人と07/18と入力する人がいます。
エクセルシートにe.mm.dd(17.07.18)と表示させるには どのようにしたら良いのでしょうか
回答宜しくお願い致します。

【26791】Re:テキストボックスで日付を入力するには
回答  りん E-MAIL  - 05/7/18(月) 11:57 -

引用なし
パスワード
   miho さん、こんにちわ。

>エクセルシートにはe.mm.dd(17.07.18)と表示させたいのですが17.07.18と入力する人と07/18と入力する人がいます。
この2種類しか入力パターンがないとして

コマンドボタンを押したら反映される例です。
Private Sub CommandButton1_Click()
  With TextBox1
   If InStr(.Text, ".") > 0 Then
     '17.7.18の場合
     Range("A1").Value = DateValue( _
        Application.WorksheetFunction.Substitute("H" & .Text, ".", "-"))
   Else
     '7/18の場合
     Range("A1").Value = .Text'このまま入れても勝手に変わる。
   End If
  End With
End Sub
こんな感じです。
17.7.18は日付として有効な文字列ではないらしいので、Substitute関数を使用して17-7-18に変えています。
前に「H」をつけるのは、17.7.18だけだと2017年を意味することになるからです。

【26793】Re:テキストボックスで日付を入力するには
お礼  miho  - 05/7/18(月) 13:10 -

引用なし
パスワード
   ▼りん さん、こんにちは
うまく出来ました。本当に有難うございました。


>miho さん、こんにちわ。
>
>>エクセルシートにはe.mm.dd(17.07.18)と表示させたいのですが17.07.18と入力する人と07/18と入力する人がいます。
>この2種類しか入力パターンがないとして
>
>コマンドボタンを押したら反映される例です。
>Private Sub CommandButton1_Click()
>  With TextBox1
>   If InStr(.Text, ".") > 0 Then
>     '17.7.18の場合
>     Range("A1").Value = DateValue( _
>        Application.WorksheetFunction.Substitute("H" & .Text, ".", "-"))
>   Else
>     '7/18の場合
>     Range("A1").Value = .Text'このまま入れても勝手に変わる。
>   End If
>  End With
>End Sub
>こんな感じです。
>17.7.18は日付として有効な文字列ではないらしいので、Substitute関数を使用して17-7-18に変えています。
>前に「H」をつけるのは、17.7.18だけだと2017年を意味することになるからです。

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