
No.2ベストアンサー
- 回答日時:
私の方が勉強が足りないのかもしれないが
色々書きましたが、結論は、DateValue関数を使えばよいのではないですか。
(1)VBAとあるから、エクセルVBAかアクセスVBAでしょうね
(2)コンボボックスは、設定したアイテムの中から選ぶのが基本だと思うが、本件ではテキスト部へ日付を入力するということですか。
(コンボでアイテムを選択するのは、日付は適さないととおもう。
年、月、日と3段構えになってしまう。質問はそのようには書いてない。)テキストボックスでよいのではと別途疑問は持つ。
(3)フォーマットでm月d日を適用できるのは、エクセルの場合は元が日付セリアル値でなければならないはず。
一方コンボやテキストボックスの返り値は、入力した場合は文字列ではないですか。
これにFormatを適用しても、ダメではないですか。
エクセルでは書式はNumberFormatといい、Numberデータを中心に
書式を設定することが明確に言われている。文字列データへの
書式設定はほとんど無い。
ただエクセルでは、入力した文字列数字データを強制的に数値化したりする力が強いので、わかりにくい例がある。
(4)Cells(2, 1) = DateValue(UserForm1.ComboBox1.Value)
としますと、8/13とコンボのテキスト部に入力したデータが、A1セルに2007/8/13の日付シリアル値で入りました。
これが解決策では無いですか。書式はセルに別途適応する。
Sub test02()
Cells(7, 1).NumberFormat = "m月d日"
End Sub
ーー
エクセルでは、日付を文字列にしてセルにセットするのは、限られた場面で、日付計算・多彩な書式設定に利用できず、有害の方が多い。
ーー
http://park5.wakwak.com/~weblab/refFormat.html
VB.NETでは、Format関数は、文字列を数値に変換しません。
とあるところを見ると、以前は数値化していた?。
すると8/30は30分の8に似られる?
ーー
エクセルVBAで
Cells(3, 1) = Format(8 / 30, "m月d日")
Cells(3, 1) = Format("8 / 30", "m月d日")
はいずれも書式設定(m月d日)した文字列にならない。
書式は別途セルに書式設定しないといけない。
文字列でVBAで入れると、エクセルの強力な日付転換機能が働き
書式なし、または設定済みの日付書式の日付になるよう。
(Cells(3, 1) = Format(8 / 30, "m月d日")は12月30日になるが私には説明できない。)
この回答への補足
ご回答ありがとうございます。
>(1)VBAとあるから、エクセルVBAかアクセスVBAでしょうね
エクセルVBAです。
>(2)コンボボックスは、設定したアイテムの中から選ぶのが基本だと思うが、本件ではテキスト部へ日付を入力するということですか。
はい、そうです。
私の質問の仕方が悪かったようです。
>このコンボボックスに例えば、8/30と入力すると「8月3日0」と表示されてしまいます。
コンボボックス自体の四角の中に「8月3日0」と表示されるということです。
No.1
- 回答日時:
Changeイベントでの変更よりKeyDownイベントで変更したほうがよくありませんか
Private Sub KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
if KeyCode = vbKeyReturn then
ComboBox1.text = Format( ComboBox1.Text, "m月d日")
end if
End Sub
といった具合で Enterキーが押されたらコンボボックスの内容を変更するようにします
Changeイベントだけでの対応なら
8 を入力すると 1月7日の表示になります
8/30を続けて入力
1月7日部分を選択してDelキーを押す
といった操作をすれば 『8月30日』と表示されます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA。複数のChangeイベントをまとめる方法 2 2022/03/31 12:03
- その他(ギャンブル) BOって何歳でも始めれるんですか?当たる確率的には競馬より全然高い50%とかなんですか? 2 2022/09/06 15:13
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:07
- Visual Basic(VBA) Excelマクロでセルに値が入力されたら実行する 5 2023/08/06 11:03
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) VBA ComboBoxについて 2 2022/10/21 12:15
このQ&Aを見た人はこんなQ&Aも見ています
-
「それ、メッセージ花火でわざわざ伝えること?」
「それ、メッセージ花火でわざわざ伝えること?」というメッセージを教えて下さい
-
【お題】動物のキャッチフレーズ
【お題】「百獣の王 ライオン」「実は動物界最強 カバ」は分かるけど、それはちょっとピンと来ないなと思った動物のキャッチフレーズ
-
限定しりとり
文字数6文字以上の単語でしりとりしましょう
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
人生で一番お金がなかったとき
人生で一番お金がなかったときって、どんなときでしたか?
-
EXCEL VBAのコンボボックスで日だけを表示する方法
Excel(エクセル)
-
excelVBA コンボボックスに時刻で表示したい
Excel(エクセル)
-
エクセルVBAのフォームで日時を入力しやすくしたい
Excel(エクセル)
-
-
4
ユーザーフォームのラベルに日付を表示させる方法があればお願いします。出来ればコード書いていただけると
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELのマクロで別のファイルの...
-
MsgBoxの中にある数字や日付の...
-
C#にて、他言語にローカライズ...
-
VBA 条件付き書式で空欄は適用...
-
チェックボックスのある行を非...
-
スリープ状態とロック状態の違...
-
Apache起動エラー
-
DHCP Clientサービスが勝手に停...
-
1000Base-TでのRJ45ループバッ...
-
AirStationツールなどのインス...
-
「デジカメde!!同時プリント」...
-
不明配線の捜索ツール
-
UPS(無停電電源)のコンセント...
-
Windowsのサービス起動エラーお...
-
初心者です プライマリ、セカ...
-
Cisco 製品の電源ケーブル抜け...
-
VectorWorksの安い入手方法を教...
-
WindowsServer2008でタスク実行
-
「NetBIOS over TCP/IP」と「MA...
-
webページをリンクまで含めて保...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VBA】計算結果に小数点第2位...
-
MsgBoxの中にある数字や日付の...
-
VBA 条件付き書式で空欄は適用...
-
チェックボックスのある行を非...
-
クリスタルレポートの改ページ...
-
VBでエクセル出力の文字を太字...
-
POIを使った書式設定
-
エクセルのメモについて教えて...
-
VBA コンボボックスの表示(日...
-
マイナス記号を▲で表す方法
-
spread6.0(セル連結)
-
MSAccessでODBCを介してDB接続...
-
FORMAT関数で値が変わる
-
grep で複数条件を指定
-
VBAの繰り返し処理について教え...
-
syntax error, unexpected $end...
-
【VBA】 VBAを使ってExcelにSen...
-
エクセル元データの#N/Aを非表...
-
印刷したい用紙の大きさによっ...
-
ACCESSでエクセルの書式設定
おすすめ情報