• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ユーザーフォームの結果を)

ユーザーフォームの結果表示についてのご質問

このQ&Aのポイント
  • ユーザーフォームで年月日を入力し、シートに表示したい場合に月や日が一桁の場合には先頭に「0」を付ける方法についてお教えください。
  • ユーザーフォームの初期化処理において、年月日のスピンボタンの範囲や初期値を設定しています。
  • スピンボタンの値が変更されたときには、DAY_PUTサブを呼び出し、TextBoxに値を表示します。最後にボタンを押したときにTextBoxの値を集計表に表示します。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

初期設定時には2桁に整形していますが、スピンボタンで変更した際には整形していないですね やるなら DAY_PUTプロシージャ側で整形した方がスマートなように思います Sub DAY_PUT   TextBox1.Text = Format(SpinButton1.value, "0000" )   TextBox2.Text = Format(SpinButton2.value, "00" )   TextBox3.Text = Format(SpinButton3.value, "00" ) End Sub 初期設定時の SpinButton1.Value = Year(Date) SpinButton2.Value = Month(Date): If month_mm < 10 Then month_mm = "0" & month_mm SpinButton3.Value = Day(Date): If day_dd < 10 Then day_dd = "0" & day_dd を SpinButton1.Value = Year(Date) SpinButton2.Value = Month(Date) SpinButton3.Value = Day(Date) Call DAY_PUT してやれば 表示形式を訂正する場合も DAY_PUT側だけいじればいいことになります セルへの転記ですが 転記したセルの値を 他のセルの数式で日付として扱うのであれば #1の回答のように DateSerialやDateValue、CDateなどで日付のシリアル値に直してから代入した方がいいでしょう

miruchoko
質問者

お礼

大変分かりやすく、且つご丁寧にお教え頂き ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

最終的にエクセルのシートにデータを表示するのだから、エクセルのシートの表示形式の設定を、ユーザー定義の「00」の設置で対処すべきと思う(年月日を3セルに分ける場合)。年月日を1セルに込めてプログラムで、かつプログラムでやる場合は下記コードを参考にすること。 そのとき >Workbooks("集計表").ActiveSheet.Range("a1") = tbox1 & tbox2 & tbox3 なんてやるのでなく、 Sub test02() tbox1 = "2008" tbox2 = "12" tbox3 = "23" Cells(1, 2) = DateSerial(Val(tbox1), Val(tbox2), Val(tbox3)) Cells(1, 2).NumberFormat = "ggge年mm月dd日" End Sub を参考に、日付シリアル値でセルにセットし、セルの表示形式で 適当な日付書式にすべきと思う。 このほうが、利用する場合、一般的には役立つ。 ーー また質問文のコードは、回答に関係ないコードが多すぎる。

関連するQ&A

専門家に質問してみよう