• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:[VBA] 年度を指定し、以降の日付を表示する)

[VBA] 年度を指定し、以降の日付を表示する

このQ&Aのポイント
  • 年度を指定し、以降の日曜日から始まる日付を取得するVBAの作成方法について教えてください。
  • 特定の年度をプルダウンで選択し、その年度から始まる週の日曜日の日付を取得し、指定したセルに入力するVBAを作成したいです。
  • なるべく現在の年度近辺の週が表示されるようにすると、より使いやすいです。

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

  • ベストアンサー
noname#192382
noname#192382
回答No.1

年度と何週目かを指定すると指定した個数の日曜日を書き出すプログラムを作りました。試してみてください。年度はB4、何週目かはB5、個数はB6にいれてマクロを動かせば師弟の個数の日曜日の日付が表示されます。 Sub Macro2() ' ' Macro2 Macro ' マクロ記録日 : 2012/7/12 ユーザー名 : ' ' Dim kazu As Integer, hosei As Variant, newser As Variant, serial As Variant, kurikaeshi As Integer, i As Integer, hi As Variant Range("a4") = "年" Range("a5") = "何番目" Range("a6") = "いくつ" Range("e4") = Range("b4") & "年1月1日" Range("f4") = DateValue(Range("e4")) serial = Range("f4") Range("g4") = WeekDay(Range("f4")) kazu = Range("G4") 'MsgBox (kazu) Select Case kazu Case Is = 7 hosei = 1 Case Is = 6 hosei = 2 Case Is = 5 hosei = 3 Case Is = 4 hosei = 4 Case Is = 3 hosei = 5 Case Is = 2 hosei = 6 Case Is = 1 hosei = 0 Case Else End Select newser = serial + hosei Range("h4") = newser Range("i4") = newser + (Range("b5") - 1) * 7 Range("I4").Select Selection.Copy Range("C5").Select Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False 'MsgBox (Range("c5")) hi = Range("c5") kurikaeshi = Range("b6") + 5 For i = 7 To kurikaeshi Cells(i, 2) = i - 5 Cells(i, 3) = hi + 7 hi = Cells(i, 3) Next End Sub

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【Excel】日付に関する関数について

    はじめまして。初めて投稿いたします。 下記、わかる方いらっしゃいましたら教えていただきたいです。 指定の2つの日付があります。(日付①、日付②とします) 日付②が、日付①の週の日曜〜土曜の7日間におさまっているかをチェックする関数が知りたいです。 例えば、 指定の日付: ①2024/3/7 ②2024/3/18 ①の週にある日曜(3/3)〜土曜(3/9)に、②の日付がおさまっているかを調べる効率の良い関数はないでしょうか。 (この場合、おさまっていないので×と表示させたいです) もう一つの例 指定の日付: ①2024/3/3 ②2024/3/9 この場合は②が①の週の日曜〜土曜におさまっているので◯と表示させたいです。 関数は必ずしも1つにまとめる必要はなく、何段階になっても構いません。 Excelが得意な方々ご教示よろしくお願いいたしますm(__)m

  • VBAでプルダウンの表示

    VBAの勉強をしております。 ブックを開いたときに、プルダウンのユーザーフォームが表示され、 そしてプルダウンにはブックを開いた日から1年間の年月日が表示される処理を作りたいと思っております。 処理としては (1)ユーザーフォームがブックを開かれると表示される (2)ブックを開いたときにそのときの日付を取得する (3)その日付から1年間をプルダウンに表示する  (例)例えば質問日の7/22にブックを開いたとすると     「201507」「201508」「201509」「201510」・・・のように年と月を表示するようにしたいです。 そこで現在この処理を行うのにブックを開いたときにユーザーフォームを表示するようにはできたのですが、プルダウンで1年間を表示するにはどうしたらいいのでしょうか。 1、シートに「201507」~「201712」ぐらいまでをA列に記載し、 2、ブックを開いた日付を取得し、その日付を「YYYYMM」の形にし、 3、シートのA列を上から順に検索し、同じ数値のが見つかるまで検索する 4、見つかったら、そこの行数を読みとり、そこから12個分下にある数値を読み取り 5、それをプルダウンに表示させる という処理の流れを考えたのですが、実際にどうVBEに書いたらいいかわかりません。

  • ACCESSで日付を指定すると、その1週間のデータを月曜~日曜まで並ばせるには‥

    ACCESSで日付の入ったデータがあります。 これらのデータから、日を指定するとその週の月曜~日曜まで出るようにしたいのですが、そのようなことはできるのでしょうか。 また、できればその次の週以降も表示させたいのですが‥。 宜しくお願いします。

  • excel2000 週から日付を出したい

    excel2000を利用しています。 自分でなんとかしたかったのですが、うまくいかず、投稿させていただきました。 まずはじめに、下記添付写真を参照願います。 やりたいこと条件 (1)年月と週を指定することで、自動的に、月~日までの日付を表記させたい (2)1日のある週が第一週目という条件 (3)VBAあっても、なくても、どちらでも可 です。 よろしくお願いします。

  • Excelでプルダウンと連動して日付表示を変える方法。

    Excelでプルダウンと連動して日付表示を変える方法。 Excelについてご教授お願いいたします。 現在Excelの勉強中で、勤務表などを作成したいと考えています。 プルダウンから2010年01月など日付を選ぶだけで、その選択したリストに連動して、下の部分にその月ごとの日付や曜日が表示されるようにするにはどのように設定すればよろしいのでしょうか? プルダウンリストの月ごとに29日、30日、31日と表示を変化させるためには、別sheetを参照するプルダウンリストの作成などで作成できるものなのか、それともVBAを新たに勉強する必要がありますでしょうか? 方法を教えていただければ幸いです。

  • Excel VBAでの日付の表示形式指定について

    以下のサイトを参考に、B列に入力するとC列に自動で日付が挿入されるようなVBAを作成し、日付を「07/19」という表示形式にしたかったので、Format関数で指定しました。 http://hpcgi1.nifty.com/kenzo30/b_cbbs/cbbs.cgi?mode=al2&namber=34979&rev=&no=0&P=R&KLOG=226 -----VBA------------ 'B列入力で日付自動挿入 Private Sub Worksheet_Change(ByVal Target As Range) Dim RR As Range Dim R As Range Set RR = Intersect(Target, Range("B:B")) If RR Is Nothing Then Exit Sub Application.EnableEvents = False For Each R In RR If R.Value <> "" Then R.Offset(, 1).Value = Format(Date,"mm/dd") Else R.Offset(, 1).ClearContents End If Next Application.EnableEvents = True End Sub --------------------- うまく日付が挿入されるのですが、なぜか表示形式が 「7月19日」と日本語表記になってしまいます。 「セルの書式設定」で「mm/dd」と設定すればいいのかもしれませんが、VBAで設定する方法はないのでしょうか?

  • 指定した時刻と時間間隔を表示するVBA

    'カレンダーフォームのVBA If Intersect(Target, Range("BP1")) Is Nothing Then Exit Sub If MsgBox("日付を記入するためカレンダーを表示させます、よろしいでしょうか?", vbYesNo) = vbNo Then Exit Sub Else End If ' カレンダーフォームを起動する Call ShowCalendarFromRange2(Target) End Sub セルBP1を選択するとあらかじめ作成していたカレンダーフォームが起動され指定した日付を選択出来るVBAが入っています。 質問ですがカレンダーで日付を選択した後に直ぐinput boxを使用し「指定した時間(〇〇:〇〇)を入力して下さい。」と表示させ、指定した時間をCO14に表記させます。(例えば8:00と入力したらCO14に8:00と表示される様にします。) 次にもう一度input boxを使用し今度は「先ほど指定した時刻からの時間間隔(〇〇分)を入力して下さい。」と表示させ、CO15~CO37に指定した時間間隔を自動で表示させます。(例えば5分と入力したらCO15には8:05、CO16には8:10・・・とinput boxでしていた時間間隔を自動で表示させます。) この様なVBAはどの様にすれば宜しいでしょうか?

  • エクセルVBA フォームの日付を指定

    データ登録フォームの日付を指定したいのですがどうすればよいでしょうか? まず、userform5を開きます。規定値は当日にしていますが、過去のものも入れられるようクリアして任意の日付を入力します。 その後、実行ボタンを押すとuserform2を開き、入力開始するのですが、その時の撮影日textboxの値にさきほど入力した値を入れたいです。 変数はPrivate torokudate As Dateこのような形でよいと思いましたが、どこに書けば他のフォームでも利用できるのでしょうか? うまくいってるのかどうかわかりませんが、表示が0:00とされました。 撮影日textboxのプロパティ設定がわるいのかどうかもよくわかりません。 初歩的なVBAですが、よろしくお願いします。

  • accessで年度の表示をさせたい

    いつもお世話になります。過去ログ参照し、いろいろやってみましたが、どうしても解決できないのでよろしくお願いします。 商品の売上の管理をするDBをつくろうとしています。 テーブルに会社マスタとして、会社名と会社IDが、商品マスタには商品名と商品IDが、伝票には伝票番号、会社番号、商品番号、日付、年度のフィールドが作ってあります。 伝票を入力するためのフォームとクエリも作成しています。 伝票を入力するフォームに年度というテキストボックスを作成し、コントロールソースに=IIf(Month([txt])<4,Format(DateAdd("yyyy",-1,[日付のテキストボックス名]),"gggee" & "年度"),Format([日付のテキストボックス名],"gggee" & "年度")) を入力し、日付が決定されると年度を表示されるようにしたかったわけです。 本来、日付のフィールドはデータ型に、「日付/時刻型」を選んでおり、日付カレンダーの表示により、目的の日にちを選択することでyyyy/mm/ddの表示をさせているものです。定型入力の欄は空白になっています。 ところが、フォームをデザインビューで開くと年度の欄に「#Name?」 の表示が出てしまいます。基本的なことなのでしょうが、わかりやすく説明していただけないでしょうか? あと、~月度のような考え方はどのようにしたらよいでしょう?

  • VBA ファイル制御(日付)

    自分で作成したエクセルのファイルを他の事業所へ貸し出すことになりましたが、他の事業所で一般的に使用されたりコピーされて使われないように、ファイルを一度開いてから7日後には、ファイルを開いても強制終了させるとか、コメントを表示させてファイルを閉じさせるとか、ファイルを開けないようにしたいと思っています。 パソコンにより、日付が狂っているものもあるので、 そのパソコンの日付で7日後を指定したいのですが、VBAでどの様にやればいいのかわかりません。 丁寧に教えてください。 最初にファイルを開いた時にだけ、そのパソコンの日付を取得し、 7日後を設定し、7日後以降ファイルを開いた場合、メッセージBOX「使用期限ですなど」を表示させ、ファイルを閉じさせるという感じにできたら。。。と思っています。

専門家に質問してみよう