Excel VBA質問箱 IV

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

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


5906 / 13645 ツリー ←次へ | 前へ→

【48272】日付の認識と反映 ブタゴリラ 07/4/10(火) 23:59 質問[未読]
【48275】Re:日付の認識と反映 ウッシ 07/4/11(水) 8:44 発言[未読]
【48280】Re:日付の認識と反映 カピバラ 07/4/11(水) 13:33 回答[未読]
【48284】Re:日付の認識と反映 ウッシ 07/4/11(水) 14:59 発言[未読]
【48276】Re:日付の認識と反映 りん 07/4/11(水) 8:47 発言[未読]
【48281】Re:日付の認識と反映 カピバラ 07/4/11(水) 13:35 回答[未読]
【48282】Re:日付の認識と反映 Jaka 07/4/11(水) 13:44 発言[未読]

【48272】日付の認識と反映
質問  ブタゴリラ  - 07/4/10(火) 23:59 -

引用なし
パスワード
   EXCELのVBAを利用して、管理台帳を作っています。

そこでユーザーフォームに色々入力してもらって、
それを「登録」ボタンでEXCELに反映させるようにしています。

しかし、日付をテキストボックスで作成したのですが、
文字列で反映されてしまい、「8/5」と入力すると、
もちろんEXCELシートには「8/5」と入力されます。
これを「07/8/5」と入力させたいのですが、
どうすればいいでしょうか?

6桁、または8桁で入力しても、
同様の6桁表示でEXCELシートには反映させたいのですが。

すみませんが、教えてください。

【48275】Re:日付の認識と反映
発言  ウッシ  - 07/4/11(水) 8:44 -

引用なし
パスワード
   こんにちは

「CDATE」「Format」等を使用して日付への変換は可能ですが、

日付に変換可能なデータなのか、6桁なのか、8桁なのか、判断が必要になりますから、
コンボボックスで年月日を選択出来るようにした方が良くないでしょうか?

【48276】Re:日付の認識と反映
発言  りん E-MAIL  - 07/4/11(水) 8:47 -

引用なし
パスワード
   ブタゴリラ さん、おはようございます。
>しかし、日付をテキストボックスで作成したのですが、
>文字列で反映されてしまい、「8/5」と入力すると、
>もちろんEXCELシートには「8/5」と入力されます。

セルの「数値の書式」が文字列になっていませんか?

>6桁、または8桁で入力しても、
>同様の6桁表示でEXCELシートには反映させたいのですが。
セルの書式設定で、yy/mm/ddにすれば6桁表示になると思いますが。
ただ、6桁で入力された場合、
(H)19/04/10 の場合は、2019/04/10と認識されるので注意が必要です。

【48280】Re:日付の認識と反映
回答  カピバラ  - 07/4/11(水) 13:33 -

引用なし
パスワード
   >>ウッシさん
“日付”とテキストボックスの前に記入しているので、
日付で入力してもらえることは大丈夫なのです。

コンボボックスで選んでいくよりも、
テキストボックスで打ち込んだ方が早いかなーと思ったのですが。

CDATEやFormatではどうするのでしょうか?
すみませんが、教えてください。

ちなみに、最初は
テキスト.Value = Format(Date, "yy/mm/dd")
と当日の日にちがでるようにしてあります。

【48281】Re:日付の認識と反映
回答  カピバラ  - 07/4/11(水) 13:35 -

引用なし
パスワード
   >>りんさん
EXCELシート自体のセルの書式は
バスク語で“yy/mm/dd”と表示されるようにしてあります。
しかし、フォームで該当テキストボックスに「8/5」と入力してしまうと、
シートに反映される時に「07/8/5」とはならずに「8/5」となってしまうのです。

【48282】Re:日付の認識と反映
発言  Jaka  - 07/4/11(水) 13:44 -

引用なし
パスワード
   素直に
年、月、日の入力欄を3つ作った方が良いと思いますけどね。
さすれば、ああでもないこうでもないと悩むことがなくなると思います。
私ならそうしますよ。
使う人がどんな風に入力されるかわかったもんじゃないので。

【48284】Re:日付の認識と反映
発言  ウッシ  - 07/4/11(水) 14:59 -

引用なし
パスワード
   こんにちは

Private Sub CommandButton1_Click()
  If IsDate(Me.TextBox1.Text) Then
    With ActiveSheet.Range("A1")
      .NumberFormatLocal = "yy/mm/dd"
      .Value = CDate(Me.TextBox1.Text)
    End With
  End If
End Sub

こんな感じなのですが、みなさんもおっしゃられているように、日付としての入力を
強制するようにしておいた方がいいと思います。

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