Excel VBA質問箱 IV

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

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


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

【30498】カレンダーコントロールのタイマーとの連動について Hiroko 05/10/28(金) 19:45 質問[未読]
【30504】Re:カレンダーコントロールのタイマーとの... ichinose 05/10/28(金) 20:51 発言[未読]
【30508】Re:カレンダーコントロールのタイマーとの... Hiroko 05/10/29(土) 8:06 お礼[未読]
【30510】Re:カレンダーコントロールのタイマーとの... ponpon 05/10/29(土) 8:19 発言[未読]
【30521】Re:カレンダーコントロールのタイマーとの... Hiroko 05/10/29(土) 11:26 お礼[未読]
【30525】Re:カレンダーコントロールのタイマーとの... ichinose 05/10/29(土) 11:44 発言[未読]
【30533】Re:カレンダーコントロールのタイマーとの... Hiroko 05/10/29(土) 13:59 お礼[未読]
【30526】Re:カレンダーコントロールのタイマーとの... ponpon 05/10/29(土) 11:50 発言[未読]
【30534】Re:カレンダーコントロールのタイマーとの... Hiroko 05/10/29(土) 14:08 お礼[未読]

【30498】カレンダーコントロールのタイマーとの連...
質問  Hiroko  - 05/10/28(金) 19:45 -

引用なし
パスワード
   ユーザーフォームのツールボックスの中で
その他のコントロールのカレンダーコントロールを
使っていますが、
このカレンダーの
日時の自動更新の仕方を教えてください。
パソコンのタイマーとの連動で日付が毎日更新できる
ようにしたいのですが・・・
どなたかご存知の方がおられましたら、宜しく
お願いします。

【30504】Re:カレンダーコントロールのタイマーと...
発言  ichinose  - 05/10/28(金) 20:51 -

引用なし
パスワード
   ▼Hiroko さん:
こんばんは。


>ユーザーフォームのツールボックスの中で
>その他のコントロールのカレンダーコントロールを
>使っていますが、
>このカレンダーの
>日時の自動更新の仕方を教えてください。
>パソコンのタイマーとの連動で日付が毎日更新できる
>ようにしたいのですが・・・
>どなたかご存知の方がおられましたら、宜しく
>お願いします。

UserformのInitializeイベントで

'========================================
Private Sub UserForm_Initialize()
  Calendar1.Today
End Sub

とすれば、ユーザーフォームを表示するタイミングで本日の日付を
表示しませんか?

試してみて下さい。

【30508】Re:カレンダーコントロールのタイマーと...
お礼  Hiroko  - 05/10/29(土) 8:06 -

引用なし
パスワード
   ▼ichinose さん:
早速ご解答ありがとうございました。

>UserformのInitializeイベントで
>'========================================
>Private Sub UserForm_Initialize()
>  Calendar1.Today
>End Sub
>
>とすれば、ユーザーフォームを表示するタイミングで本日の日付を
>表示しませんか?

表示できました。ありがとうございます。
Initializeの意味が少し分かりました。あと一点教えていただけませんでしょうか。

現在次のようなコードを記述していますが

Private Sub Calendar1_Click()
 'Calendar1 = Format("ggge""年""mm""月""dd""日""") 
With Range("C65536").End(xlUp).Offset(1, 0)
     .Value = Calendar1.Value    
End With
End Sub

Private Sub UserForm_Initialize() '追加分                
  Calendar1.Today
End Sub
カレンダーの玉をクリックすると、クリックした年月日が
2005/10/29とA列に入りますが、これを和暦にしょうと思い
 ⇒Calenndar1=Format("ggge""年""mm""月""dd""日""")とコードを
加えると、
実行時エラー400
フォームは既に表示されているので、モーダル表示することはできません
といつエラーがでます。
和暦にするための、コードの訂正を教えてください。

【30510】Re:カレンダーコントロールのタイマーと...
発言  ponpon  - 05/10/29(土) 8:19 -

引用なし
パスワード
   おはようございます。

.Value = Calendar1.Value    



.Value = Format(Calendar1.Value, "ggge""年""mm""月""dd""日""") 

ではいかがでしょう。
   

【30521】Re:カレンダーコントロールのタイマーと...
お礼  Hiroko  - 05/10/29(土) 11:26 -

引用なし
パスワード
   ▼ponpon さん:

早速ご解答ありがとうございました。
お陰さまで出来ました。和暦で表現が出来ました。

後一つ教えていただけませんでしょうか。
今回の和暦は「文字列」の和暦ですが・・・

シリアルナンバーを生かした「和暦」のコードの
作成はマクロで出来ますでしょうか。
今日の日にちですと38654で、後のコードでこのシリアル
ナンバーを活用したいのですが。

【30525】Re:カレンダーコントロールのタイマーと...
発言  ichinose  - 05/10/29(土) 11:44 -

引用なし
パスワード
   Hiroko さん:
ponpon さん:
おはようございます。

>
>早速ご解答ありがとうございました。
>お陰さまで出来ました。和暦で表現が出来ました。
>
>後一つ教えていただけませんでしょうか。
>今回の和暦は「文字列」の和暦ですが・・・
>
>シリアルナンバーを生かした「和暦」のコードの
>作成はマクロで出来ますでしょうか。
>今日の日にちですと38654で、後のコードでこのシリアル
>ナンバーを活用したいのですが。
Calendar1.Valueは、Date型のプロパティです。

和暦表示は、セルの書式だけ予め設定しておけば、
calendar1.valueをそのまま設定すれば、シリアル値がセルに入ります。

'==========================================================
Private Sub Calendar1_Click()
  MsgBox TypeName(Calendar1.Value) 'これは、確認のためです
  With Range("C65536").End(xlUp).Offset(1, 0)
     .Value = Calendar1.Value
    End With
End Sub
'===============================================================
Private Sub UserForm_Initialize()
  Calendar1.Today
  Range("c:c").NumberFormatLocal = "ggge""年""m""月""d""日"""
End Sub

確認してください。

【30526】Re:カレンダーコントロールのタイマーと...
発言  ponpon  - 05/10/29(土) 11:50 -

引用なし
パスワード
   こんにちは。
いわれている意味がよくわからなくて申し訳ないのですが、
転記したセルの表示形式を標準にしてみてください。
そこで、シリアルが表示されれば、シリアル値で管理していることになろうかと思います。

そうでなければ、

CDate(転記先セル.Value)
DateValue(転記先セル.Value)で取得できると思います。

こういうことでしょうか?

【30533】Re:カレンダーコントロールのタイマーと...
お礼  Hiroko  - 05/10/29(土) 13:59 -

引用なし
パスワード
   ▼ichinose さん:

ありがとうございました。
セルの書式を先にマクロで設定しておくのですね。
勉強になりました。
(今まではエクセルのシート上で書式の設定をしていました。)

確かにシリアルナンバーが確保されています。
文字列の表現ですと
セルの《左から》「平成17年10月29日」と表示されましたが、
今回の表示は《右詰》になっています。

TypeName(Calendar1.Value)は⇒「Day」と表示されましたので
TypeNameを外しましたら「05/10/29」とMsgBoxにでました。

色々とご指導ありがとうございました。非常に勉強になりました。

>和暦表示は、セルの書式だけ予め設定しておけば、
>calendar1.valueをそのまま設定すれば、シリアル値がセルに入ります。
>
>'==========================================================
>Private Sub Calendar1_Click()
>  MsgBox TypeName(Calendar1.Value) 'これは、確認のためです
>  With Range("C65536").End(xlUp).Offset(1, 0)
>     .Value = Calendar1.Value
>    End With
>End Sub
>'===============================================================
>Private Sub UserForm_Initialize()
>  Calendar1.Today
>  Range("c:c").NumberFormatLocal = "ggge""年""m""月""d""日"""
>End Sub
>
>確認してください。

【30534】Re:カレンダーコントロールのタイマーと...
お礼  Hiroko  - 05/10/29(土) 14:08 -

引用なし
パスワード
   ▼ponpon さん:

説明が不十分で申し訳けございませんでした。
意図はichinose様のご返答そのものです。

今回、カレンダーの日時自動更新と和暦の書き方を学べ
大きな収穫を頂きました。感謝しております。
今後とも宜しくお願い申し上げます。

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