• ベストアンサー

エクセル 日付自動入力?

エクセル2000を使用しております。 例)セルA1に 8/1 と入力したら   セルB1以降には自動で 8/2 セルC1には8/3・・・・・ 以上のように連続2週間分の日付が入力されていく。 但し 土曜日、日曜日の日付は入力されないようにする。 以上のような自動入力をする関数、もしくはVBAにての 命令文を教えていただきたいのですが・・ よろしくお願いいたします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 >A1入力⇒B1・・から自動入力(横)ではなくて >A1入力⇒A2・・自動入力(縦)です。 縦と横に関しては、簡単に直ります。 下から8行目に、この2行がありますが、    Target.Offset(, i).NumberFormatLocal = Target.NumberFormatLocal    Target.Offset(, i).Value = myDate 修正後    Target.Offset(i).NumberFormatLocal = Target.NumberFormatLocal    Target.Offset(i).Value = myDate としていただければ、直ります。

77TAKETAKA
質問者

お礼

適切なご回答ありがとうございます。 助かりました。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 マクロですと、このようになりますね。 A1 に日付を書き込むと、それから2週間を連続して書き込みます。 ただし、A1の日が、土日ですと、月曜日に書き換わります。 このマクロはイベントですから、シートタブを右クリックして、コードの表示で、開いた場所に以下のコードを貼り付けます。閉じる時は、Alt + Q とすれば閉じます。それだけで終了です。 Private Sub Worksheet_Change(ByVal Target As Range) Dim myDate As Date Dim i As Integer If Target.Address <> "$A$1" Then Exit Sub 'A1を指定する If IsDate(Target.Text) = False Then Exit Sub '日付であるかチェック Application.EnableEvents = False i = 0 myDate = Target.Value Do  If Weekday(myDate, vbMonday) < 6 Then    Target.Offset(, i).NumberFormatLocal = Target.NumberFormatLocal    Target.Offset(, i).Value = myDate    i = i + 1  End If  myDate = myDate + 1 Loop Until i >= 14 Application.EnableEvents = True End Sub

77TAKETAKA
質問者

補足

誠にすみません。 質問内容が間違っていました。 A1入力⇒B1・・から自動入力(横)ではなくて A1入力⇒A2・・自動入力(縦)です。 上記コードでやりたいことは出来たのですが 本当にすみません、質問が間違っていまして。 お手数をかけますが、もう一度御教示願えませんでしょうか?

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.1

B1=IF(A1="","",WORKDAY(A1,1)) ★右にコピー ★WORKDAY関数は,「アドイン関数」です。メニューバーの[ツール]-[アドイン]を選択して、「分析ツール」にチェックしてから使用してください