- ベストアンサー
エクセル 日付自動入力?
エクセル2000を使用しております。 例)セルA1に 8/1 と入力したら セルB1以降には自動で 8/2 セルC1には8/3・・・・・ 以上のように連続2週間分の日付が入力されていく。 但し 土曜日、日曜日の日付は入力されないようにする。 以上のような自動入力をする関数、もしくはVBAにての 命令文を教えていただきたいのですが・・ よろしくお願いいたします。
- みんなの回答 (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 としていただければ、直ります。
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 マクロですと、このようになりますね。 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
補足
誠にすみません。 質問内容が間違っていました。 A1入力⇒B1・・から自動入力(横)ではなくて A1入力⇒A2・・自動入力(縦)です。 上記コードでやりたいことは出来たのですが 本当にすみません、質問が間違っていまして。 お手数をかけますが、もう一度御教示願えませんでしょうか?
- maron--5
- ベストアンサー率36% (321/877)
B1=IF(A1="","",WORKDAY(A1,1)) ★右にコピー ★WORKDAY関数は,「アドイン関数」です。メニューバーの[ツール]-[アドイン]を選択して、「分析ツール」にチェックしてから使用してください
お礼
適切なご回答ありがとうございます。 助かりました。