名称:簡易カレンダー作成マクロ
免責:このマクロの使用によっていかなる損害が生じようと、一切責任は負いません。あらかじめご承知の上ご使用下さい。
使用法:マクロを実行すると「範囲指定」が求められますので
平成19年2月
のような文字列を選択してください。 すると下のようにカレンダーが作られます。
*
*
*
*
*
*
*Taro_Calendar.lzhをダウンロード
(2007/02/12) |
ちなみに下が簡易カレンダー作成マクロのコードです。 プロポーショナルフォントだと数字がきちんと並ばないので最後にわざわざ範囲選択して等幅フォントに変えています。(コードNo.1) |
!!(コードNo.1)
Range?() %Str=GetString %Nen=Mid(%Str(1) , 3 , 2) %Tuki=Right(%Str(1),3) If left(%Tuki,1) = "年" Or left(%Tuki,1) = " " Or left(%Tuki,1) = " "Then %Tuki = Mid(%Tuki,2,1) Else %Tuki = Left(%Tuki,2) End If %Nen = %Nen + 1988
%Pos=DayOfWeek( %Nen , %Tuki, 1 ) %Cnt=7-%Pos+1
下 行頭 %MyRow=GetRow %MyCol=GetColumn %MyPage=GetPage Insert("日 月 火 水 木 金 土",1) %Num={" 1"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9",10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}
!!閏年判定 %IsLeapYear=False If %Nen Mod 4 =0 Then %IsLeapYear= True End If If %Nen Mod 100 =0 Then %IsLeapYear= False End If If %Nen Mod 400 =0 Then %IsLeapYear= True End If
!!月末最終日 Select Case %Tuki Case 1,3,5,7,8,10,12 %最終日 =31 Case 4,6,9,11 %最終日 =30 Case 2 If %IsLeapYear =True Then %最終日 =29 Else %最終日 =28 End If End Select
Jump(,,(%Pos -1)* 3+1)
For %i = 1 to %最終日
Insert(%Num(%i)) 右(1) If %Cnt-%i=0 Then Jump(,,%MyCol) 下 %Cnt=%Cnt+7 End If Next %MyPage2=GetPage %MyRow2=GetRow %MyCol2=GetColumn Jump(%MyPage,%MyRow,%MyCol) RangeMode(1) RangeStart Jump(%MyPage2,%MyRow2,%MyCol2) RangeEnd フォント(.和文フォント名="MS ゴシック",.欧文フォント名=10) |
しかし、InputCharacter()を使って予めフォントを指定すれば、コードNo.1のように後からフォントを変更する必要はありませんでした。
!!コードNo.2
Range?() %Str=GetString %Nen=Mid(%Str(1) , 3 , 2) %Tuki=Right(%Str(1),3) If left(%Tuki,1) = "年" Or left(%Tuki,1) = " " Or left(%Tuki,1) = " "Then %Tuki = Mid(%Tuki,2,1) Else %Tuki = Left(%Tuki,2) End If %Nen = %Nen + 1988
%Pos=DayOfWeek( %Nen , %Tuki, 1 ) %Cnt=7-%Pos+1
下 行頭 %MyRow=GetRow %MyCol=GetColumn %MyPage=GetPage Insert("日 月 火 水 木 金 土",1) %Num={" 1"," 2"," 3"," 4"," 5"," 6"," 7"," 8"," 9",10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}
!!閏年判定 %IsLeapYear=False If %Nen Mod 4 =0 Then %IsLeapYear= True End If If %Nen Mod 100 =0 Then %IsLeapYear= False End If If %Nen Mod 400 =0 Then %IsLeapYear= True End If
!!月末最終日 Select Case %Tuki Case 1,3,5,7,8,10,12 %最終日 =31 Case 4,6,9,11 %最終日 =30 Case 2 If %IsLeapYear =True Then %最終日 =29 Else %最終日 =28 End If End Select
Jump(,,(%Pos -1)* 3+1)
For %i = 1 to %最終日 InputCharacter(.和文フォント名="MS ゴシック",.欧文フォント名=10) Insert(%Num(%i)) 右(1) If %Cnt-%i=0 Then Jump(,,%MyCol) 下 %Cnt=%Cnt+7 End If Next |
(2007/03/09 追記) |
|
|
コメント