【Class Library】


万年カレンダー
 作成手法は、描画テクニックを使ったものです。 サンプルのクラスを用いると、 このようなカレンダーを簡単に作成することができます。

ラベル等のコントロールを配列化した方がより簡単に作成できますが、 描画でカレンダーを作成すると次の3つのメリットがあります。

1.コントロールを配置する手間が省ける
2.背景やサイズなど、拡張性が高いものが作成できる
3.他の開発ツールへのコンバートが容易

この中でも、やはり2番目の拡張性、つまり、 デザイン的に凝ったものを作成しやすいというのが最大の利点です。

★Object★

オブジェクト 割り当て変数名 役割
PictureBox or Form calObject カレンダーを描画する

 配置したオブジェクトのプロパティを変更します。
(プロパティ表)
Picture1
Appearance0-フラット
AutoRedrawTrue
BorderStyle0-なし

★Property?★

クラスのGeneralセクションにおける変数と定数の一覧です。

'//クラス内のグローバル変数//
Private calObject As Object 'カレンダーを描画するオブジェクト
Private TargetYear As Long  '描画するカレンダーの年
Private TargetMonth As Long '描画するカレンダーの月

'//クラス内のグローバル定数//
'//これらの定数値を変数にして自在性のあるものにしても面白い//
Private Const C_WIDTH = 30&              '1つの日付の領域の幅
Private Const C_HEIGHT = 30&             '1つの日付の領域の高さ
Private Const G_LENGTH = 1&              '枠線の太さ
Private Const SUNDAY_COLOR = &HFF        '日曜日と祝日の色
Private Const SUTURDAY_COLOR = &HFF0000  '土曜日の色
Private Const OTHER_COLOR = &H0          'その他の曜日の色
Private Const DAYS_FONT = "MS ゴシック" 'フォント
Private Const FONT_SIZE = 12&            'フォントの大きさ
Private Const GRID_COLOR = &HC0C0C0      '枠線の色
Private Const HGRID = True               '横方向の枠線の有無
Private Const VGRID = False              '縦方向の枠線の有無

'-----あまり意味をなさない定数,一応つけておきました-----
Private Const START_X = 0&               'カレンダー描画開始点
Private Const START_Y = 0&
Private Const END_X = 0&                 '右部分の余白
Private Const END_Y = 0&                 '下部分の余白

★Method★

 プロシージャの列挙です。

プロシージャ名 処理内容
DrawDays オブジェクトにカレンダーの日付、1日〜を描画する
DrawGrid オブジェクトを適当なサイズに調節し、カレンダーのグリッドを描画する
DrawString 指定された長方形内にテキストを描画する
DrawWeekDays オブジェクトに曜日を描画する
GetLastDay オブジェクトに設定されている年月の日数を求める
GetTargetMonth オブジェクトに設定されている月を求める
GetTargetYear オブジェクトに設定されている年を求める
GetWeekDay 指定された年月の第1日目の曜日を番号で返す(0-日曜,1-月曜・・・6-土曜)
MakeCalendar オブジェクトに新しい年月を設定し、そのカレンダーを描画する
RestDays 指定された年月日が祝日かどうかを返す

★クラスの使用方法★

 クラスをプロジェクトに追加して、PictureBoxを配置した後、 プロパティを上記のように変更し、Form_Load()イベントプロシージャに

Dim cc As New CCalendar
cc.SetcalObject = Picture1

と記入すれば、現在の月のカレンダーが描画されます。


(サンプルプログラムの動作確認)

機種 PC-9821V13S
OS Windows95
開発ツール Visual Basic Ver.4.0(ソース)
Visual Basic Ver.6.0(実行ファイル)
更新日 00/6/17

ダウンロード ソースファイル souCal.lzh(6.11KB)

ダウンロード 実行ファイル exeCal.lzh(32.2KB)

ソースはVisual Basic Ver.5.0,Ver.6.0でも問題なく動作すると思います。
なお、このコーナーに掲載されているプログラムコード、およびプログラムファ イルが原因で生じた損害などに関して一切の責任を負うことはできません。

★このコーナーに掲載されているプログラムコード、およびプログラムファ イルを無断で配布・転載することは、原則として禁止です。ただし実行ファイル はフリーです。


Class Libraryインデックス トップページ


Copyright(C)2000 Tomoya. All rights reserved.