Excel VBA質問箱 IV

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

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


52335 / 76737 ←次へ | 前へ→

【29241】Re:別シートからのデータ抽出、挿入につ...
質問    - 05/9/28(水) 18:05 -

引用なし
パスワード
   Jaka さん ありがとうございました。
動作に感動しました。

少し改良しTargetの行を下へ移動し、
A2に年、B2に月を入れることにしました。
それで自動でRange("A9:A39")に日付を入れようと考えましたが
マクロが動作しません。

アドバイスをお願いいたします。


Private Sub Worksheets_Change(ByVal Target As Range)
 Dim themonth As Integer
 Dim theyear As Integer
 Dim days As Integer

 With Target
  If IsEmpty(.Value) Then Exit Sub
  If Not IsNumeric(.Value) Then Exit Sub
  If .Count > 1 Then Exit Sub
 End With

 '入力セルがA2とB2の場合のみ処理する
 If Target.Address = Range("A2").Address Or _
  Target.Address = Range("B2").Address Then
 
  'A2とB2に数値が入力してあれば、処理する。
  If Range("A2").Value <> "" And Range("B2").Value <> "" And _
   IsNumeric(Range("A2").Value) And IsNumeric(Range("B2").Value) Then
    '前回の値をクリアする。
    Range("A9:A39").ClearContents
    '年のセル
    theyear = Range("A2").Value
    '月のセル
    themonth = Range("B2").Value
    '月の値が1〜12かをチェック
    If themonth >= 1 And themonth <= 12 Then
     With Range("A9")
      '1ヶ月分の日付を生成する。
      For days = 1 To Day(DateSerial(theyear, themonth + 1, 1) - 1)
       .Offset(days - 1).Value = DateSerial(theyear, themonth, days)
      Next
     End With
    Else
     MsgBox "月の値は、1〜12を入力してください。"
     Range("B2").Select
    End If
  End If
  '以下、別にいらない機能?
  If Target.Address = Range("A2").Address Then
   Range("B2").Select
  End If
  If Target.Address = Range("B2").Address Then
   Range("A2").Select
  End If
  'ここまで
 End If
End Sub

0 hits

【29227】別シートからのデータ抽出、挿入について 05/9/28(水) 1:30 質問
【29233】Re:別シートからのデータ抽出、挿入について Jaka 05/9/28(水) 16:11 回答
【29241】Re:別シートからのデータ抽出、挿入につ... 05/9/28(水) 18:05 質問
【29250】Re:別シートからのデータ抽出、挿入につ... Jaka 05/9/29(木) 10:01 発言

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