[[20170312193350]] 『TextBoxから日付をセルに転記すると文字列になっax(ちゃんぷる) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『TextBoxから日付をセルに転記すると文字列になっている』(ちゃんぷる)

お世話になります。

TextBoxに入力されている日付データを
セルに転記した際、セルの書式設定で"gee.mm.dd"としているのですが

文字列?で転記されているようです。

転記されたセルをマウスでダブルクリック
又は、F2キーを押して一度アクティブにすると

なぜか、セルの書式設定に従って表示されます。

現在のコード一部です(UserForm上からコマンドボタンクリックで指定セルにデータが転記)

rng.Cells(27).Value = TextBox9.Value
rng.Cells(27).TextToColumns DataType:=xlDelimited, FieldInfo:=Array(1, 5)

どうかアドバイスの程よろしくお願いします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


これでどうなりますか
rng.Cells(27).Value = CDate(Replace(TextBox9.Text, ".", "/"))

(マナ) 2017/03/12(日) 20:37


 気になりますのでコメントします。

 TextBox9 ですから、当然 テキストボックス。 したがって、操作者が任意の文字列を入れることができます。
 ABC でも HOGE でも、入力は可能です。
 したがって、転記の前に、それが、【正しい日付型文字列】であることをチェックしなければいけません。

 で、何が 正しい日付型文字列 なのか、これは、悩みますね。
 1つの方法としては、IsDate(文字列) でチェック。 ただ、これも、H29.9.10 といった文字列、これは
 シートで入力するとちゃんと日付型とみなしてくれますが、IsDate では日付型ではないとみなされます。
 (手入力であれば日付型に自動変換されますが、この値をVBAでセルに転記すると文字列になりますね)

 実際にTextBox9に操作者がいれる日付の形はどんなものなのかにもよりますが、最低でも
 マナさんのアドバイスの変換、これを行ったものを、そのまま CDate をかけて転記するのではなく
 いったん、IsDate でチェックしてから CDate変換して書き込む必要がありますね。

(β) 2017/03/12(日) 22:19


わたしの場合、日付入力にテキストボックスを使うことはありません。
いつもコンボボックス3個を使っています。
年と月と日の3個です。
これで、ありえない日付を入力不可にすることができます。

今回の転記がうまくいかない問題を解決法が理解できれば、
年と月と日を、どのように連結したらよいかは理解できると思います。

(マナ) 2017/03/12(日) 22:39


βさん
マナさん

あがうございます。
IsDateとCDateで
なんとかうまくいきました

感謝します
(ちゃんぷる) 2017/03/19(日) 01:15


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.