日付のリストの生成(Microsoft Word)
一部のドキュメントでは、作業の基礎として使用できる日付のリストがあると便利です。たとえば、現在から年末までのすべての日付を、日付の右側に人の名前またはプロジェクト名とともに一覧表示するレポートを作成する必要がある場合があります。
もちろん、出発点は日付のリストを取得することです。
リストの生成にアプローチする方法はいくつかあります。簡単な方法の1つは、ExcelをWordと組み合わせて使用することです。 Excelのオートフィル機能により、日付のリストを驚くほど簡単に生成できます。 Excelでリストを取得したら、それをコピーしてWord文書に貼り付けるか、差し込み印刷を使用して日付を文書にマージできます(そのアプローチがニーズに適している場合)。
何らかの理由でExcelを使用したくない場合は、マクロを使用するのが最善の解決策です。次のマクロは、2015年のすべての日付のリストを非常にすばやく作成します。
Sub PrintYearDays() Dim DateToday As Date Dim T As Integer 'Because the date is going to be changed, save it DateToday = Date Date = #12/31/2014# For T = 1 To 365 Selection.TypeText Text:=Format(Date + T, _ "mmmm dd yyyy") Selection.TypeParagraph Next T 'Restore today's date Date = DateToday End Sub
システムの日付をリセットすることでマクロが機能することに注意してください。
今日の現在の日付はDateToday変数に格納され、日付は範囲の開始日にリセットされます。他の日付範囲でマクロを機能させたい場合は、開始日とFor … Nextループの終了値を変更するだけです。
日付リストを作成する必要があり、範囲内の開始日と終了日がまったくわからない場合は、別のマクロアプローチの方が理にかなっています。次のマクロは、開始日と終了日の両方を要求します。
Sub ListDates() Dim ListDate as Date Dim StartDate As Date Dim EndDate As Date Dim Repeats As Integer 'Gets user input StartDate = InputBox("Please enter the starting date.", _ "Start Date", "Start Date") EndDate = InputBox("Please enter the ending date.", _ "End Date", "End Date") 'Enters the start date in the document Selection.TypeText Text:=Format(StartDate, _ "dddd, MMMM dd, yyyy") Selection.TypeText (vbCr & vbLf) 'Determines the number of dates to print Repeats = DateDiff("d", StartDate, EndDate) 'Loops to print the list of dates For i = 1 To Repeats ListDate = DateAdd("d", i, StartDate) Selection.TypeText Text:=Format(ListDate, _ "dddd, MMMM dd, yyyy") Selection.TypeParagraph Next i End Sub
入力によって設定されたStartDate変数とEndDate変数は、For … Nextループが繰り返される回数を決定します。
注:
このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(3864)は、Microsoft Word 97、2000、2002、および2003に適用されます。Wordのリボンインターフェイス(Word 2007)用のこのヒントのバージョンを見つけることができます。以降)ここ:
link日付のリストの生成。