Excel VBA質問箱 IV

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

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


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

【51944】Excel カレンダーフォーム VBA セルごとに入力方法 kitty 07/10/12(金) 15:46 質問[未読]
【51945】Re:Excel カレンダーフォーム VBA セルご... Jaka 07/10/12(金) 16:18 発言[未読]
【51957】Re:Excel カレンダーフォーム VBA セルご... kitty 07/10/12(金) 22:16 お礼[未読]

【51944】Excel カレンダーフォーム VBA セルご...
質問  kitty  - 07/10/12(金) 15:46 -

引用なし
パスワード
   VBA初心者ですが、どうか教えて下さい。

EXCELのSheet1に、日付を入力する欄が7つあります。
(例: A1, B2, C3, D4, E5,F6,G8)
それぞれ別の日付で入力していく事になるものです。

UserForm1にカレンダーコントロールを作成し、以下のコードまで出来ました。
目的の場所でカレンダー表示させる事は出来たのですが、肝心な入力ができないのです。
これで、カレンダーの日をクリックした時、日付を表示させたいのですが教えて頂けないでしょうか?

例:A1をWクリック後、カレンダーから10月15日を選ぶと、
A1には、「2007/10/15」と表示される。 
次にB2をWクリック後、カレンダーから10月20日を選ぶと、
A1には、「2007/10/20」と表示される。(A1は、「2007/10/15」のまま)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim adr As String
adr = Target.Address
If adr = "$A$1" Or adr = "$B$2" Or adr = "$C$3" Or _
    adr = "$D$4" Or adr = "$E$5" Or adr = "$F$6" Or _
    adr = "$G$8" Then
UserForm1.Show
End If

End Sub
Private Sub Calendar1_Click()
ActiveCell.Value = Calendar1.Value
UserForm1.Hide
End Sub

【51945】Re:Excel カレンダーフォーム VBA セル...
発言  Jaka  - 07/10/12(金) 16:18 -

引用なし
パスワード
   ▼kitty さん:
>例:A1をWクリック後、カレンダーから10月15日を選ぶと、
>A1には、「2007/10/15」と表示される。 
>次にB2をWクリック後、カレンダーから10月20日を選ぶと、
>A1には、「2007/10/20」と表示される。(A1は、「2007/10/15」のまま)
意味が良く解らないんですけど。
一応提示されたコードでちゃんと動いているようでしたけど...。

  Cancel = True  ←これ入れたほうが良いと思います。
  UserForm1.Show


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
St = "A1,B2,C3,D4,E5,F6,G8"
If InStr(1, St, Target.Address(0, 0)) > 0 Then
  Cancel = True
  UserForm1.Show
End If
End Sub

【51957】Re:Excel カレンダーフォーム VBA セル...
お礼  kitty  - 07/10/12(金) 22:16 -

引用なし
パスワード
   ご回答を有難うございました。

ActiveCell.Value が原因で動かない事がわかり、
これで上手く動きました。

本当に困ってましたのでお答えを頂け嬉しかったです。
有難うございました。

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