_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ _/ _/ ソフト名:kt関数アドイン (Ver3.00) _/ 種 別:フリーソフト _/ 開発環境:Windows98SE & Excel2002SP2, 2000SR1, 97SR1 _/ 動作環境:Excel97以上(Excel95では動作しません) _/ 著作権者:角田 桂一 < addinbox@h4.dion.ne.jp > _/           < http://www.h3.dion.ne.jp/~sakatsu/index.htm > _/ 免 責 :このマクロを使用したことで発生したいかなる損害に _/      ついても、作者は一切責任を負わないものとします。 _/ 再配布 :内容を改変しないという条件で、再配布は自由です。 _/ 転 載 :無断転載はご遠慮願います。 _/ 履 歴 :2001/ 1/27 Ver1.00(未公開) _/      2001/ 5/10 Ver2.00      2001/ 7/ 1 Ver2.10 _/ 2001/10/13 Ver2.20 2001/12/ 1 Ver2.30 _/ 2002/ 3/12 Ver2.40 2002/ 7/ 1 Ver2.50 _/ 2002/ 9/30 Ver2.60 2002/10/31 Ver2.61 _/ 2002/11/10 Ver2.70 2003/ 6/18 Ver2.80 _/ 2003/ 6/28 Ver2.81 2004/ 2/ 4 Ver2.90 _/ 2005/ 5/22 Ver3.00 _/ _/ その他 :TrendMicro VB2005 にてウィルスチェックしてあります。 _/ _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ (注)『kt関数アドイン 』には、既に公開している      【プログレスバー表示アドイン】      【色見本(ktPaletteEX )】      【kt貼付暦アドイン】      【kt時刻入力アドイン】      【ktMsgBoxアドイン】    も含まれています。現在この機能を利用している方は【プログレスバー    表示】【色見本】【貼付暦】【時刻入力】【ktMsgBox】への参照設定を    解除してください。 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 1.配布ファイルを解凍すると、下記のファイルに展開されます。   まず、適当なフォルダに配布ファイルを解凍して保存してください。    README.txt    ‥‥‥ このファイル    kt関数Addin.xla  ‥‥‥ kt関数アドイン本体    kt関数.hlp    ‥‥‥ ヘルプファイル    kt関数.cnt    ‥‥‥   〃    の目次情報等    体験kt関数.xls  ‥‥‥ kt関数の利用例を収録したブック 体験ktCalShape.xls ‥‥ ktCalShape関数の利用サンプルブック    体験ブック準備.xls ‥‥ 体験ブックの利用準備マクロ    ktFuncAddin_Note.txt‥‥ 利用上の注意事項(FAQ19-20 と同じ内容です)    ※配布ファイルは LZH 形式ですので、解凍ソフトが必要です。     持っていない方は、ベクター( http://www.vector.co.jp/ )等から     ダウンロードしてください。個人的には『 +Lhaca 』 がお薦めです。      http://park8.wakwak.com/~app/Lhaca/ 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 2.『kt関数アドイン』の登録方法 および 詳しい内容はヘルプファイル   【kt関数.hlp 】に記載してあります。まず【kt関数.hlp 】をクリック    して内容をお読みください。 ※『kt関数アドイン』をアドイン登録すると、EXCELの「メニューバー」     にメニューボタンがひとつ追加されます。メニューバーへの追加     が不都合な場合は「ツールバー」に切り替える事も可能です。     詳細はヘルプに記載してあります。 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 3.『kt関数アドイン』はEXCELのアドインファイルとして提供されます。    この『kt関数アドイン』は「カレンダーコントロール(MSCAL)の代わり   になるものを作ってみよう」という思いつきから作り始めたものなんです   が、カレンダーという以上は【祝日】を避けて通れません。そこで、祝日判   定関数を作ってみました。    そうすると「祝日が自動判定できるなら営業日数の計算も出来るな」と   思い、どうせなら分析ツールのWORKDAY/NETWORKDAYS で不便だった”土日”   固定の休日設定を自由にカスタマイズできるようにしよう‥‥‥と、次から   次へと便利な関数が増えて行きました。    今回、全体を整理し直し、新しくヘルプも完成したので、この機会に公開す   ることにしました。是非、活用してください。         主な機能だけ、紹介しますと      ・日付入力用のカレンダーフォーム      ・期間入力用のカレンダーフォーム      ・時刻入力用のアナログ時計風フォーム      ・祝日判定関数      ・営業日計算関数      ・第2/4土曜休み等自由にカスタマイズできる休日設定ツール      ・年間カレンダーシートの作成      ・y年mヶ月d日といった期間計算      ・始業/終業時刻からの勤務時間計算      ・フォルダ選択のダイアログ      ・ユーザーフォームの閉じるボタンの無効化      ・旧暦や十干/十二支の算出関数      ・MsgBox関数の代替関数(位置指定/カラー指定が可能)      ・カレンダーマーク用にShape図形を描画する関数   など、他にも沢山便利な関数/サブルーチンが揃っています。    kt関数アドインでは、今までの「手作業で『祝日データ表』を用意する」   という作業は不要です。現時点の祝日法で定められている【全ての祝日】が   アドイン内で自動認識されます(昭和の日 対応済)。 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ _/ 【 Ver2.90 → Ver3.00 変更内容 】 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ 1.メニュー機能の追加/変更  (1) ヘルプリファレンス画面を「カテゴリ順/関数名順/カテゴリ別」表示 にしました。 2.既存[関数/サブルーチン]の変更  (1) 各種関数/サブルーチンで「昭和の日」改正対応を行ないました。 3.新規[関数/サブルーチン]   なし 4.バグフィックス (1) kt旧暦 「旧暦1日:新暦日付」対応表に間違いが1件ありました。 誤:[新 1986/2/6] ⇔ [旧 1986/1/1] 正:[新 1986/2/9] ⇔ [旧 1986/1/1] この為、新暦日付[1986/2/6〜1986/3/9]の期間の旧暦/六曜が間違って いました。 5.その他   なし _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ _/ 【 Ver2.81 → Ver2.90 変更内容 】 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ ※ [kt関数メニュー]の項目が2つ増えますので、Ver2.81を御利用の方は、   一端アドイン解除を行なってから再度アドイン登録して下さい。 1.メニュー機能の追加/変更  (1) 休日マップの作成 ktMapLinker 関数用に休日マップを、1個〜3個の【2年or4年/圧縮】で   分割出力する機能を追加します。それに伴い、マップ期間に「2年間」が追   加されます。既存の休日マップ情報からの移行は、「読み込み」ボタンで休日   条件を読み込ませ、そのまま同じシートに書き戻せばOKです。  (2) カレンダーマーク描画フォーム ktCalShape2 サブルーチンの機能を対話的に行なうフォームが追加されます。  (3) Version情報 カレンダーマーク描画フォームを右クリックメニューに組み込むボタンを    追加します。  (4) セル指定方法の変更 「休日マップの作成」「祝日一覧の作成」「暦シートの作成」での、セル指    定方法を『セルアドレスの手入力』から、「カレンダーマーク描画」と同じ    様に[ktCellMovePad]サブルーチンを使った『マウスパッド方式』に変更し    ます。  (5) 日付連続入力 セル範囲を選択してから、このコマンドを実行すると、カレンダーフォーム    を表示し続けたまま、選択範囲内に連続して日付入力ができます。 この機能は[ktCalRepeat]サブルーチンを呼ぶ事でユーザーマクロからでも    利用可能です。 2.既存[関数/サブルーチン]の変更    なし 3.新規[関数/サブルーチン]  (1) ktMapLinker 関数 休日マップを管理ブックで一元管理する為の関数です。 [4年/圧縮]休日マップ以外は、サイズが255文字を越えている為に、閉じ   たままのブックから外部参照式でセルの内容を読み込む事が出来ませんでした。   その為に今までは個々の利用ブックに休日マップをコピーしておく必要があり、   変更が有った際の管理が大変でした。 ktMapLinker 関数は、ひとつの管理ブック上に用意した1〜3個の[2年 or   4年/圧縮]休日マップのセルを引数に指定(外部参照式により対象ブックを閉   じたままで読み込み可)すると、それを繋げてノーマル休日マップ(2〜12   年)に展開します。 kt関数メニュー「休日マップの作成」に『1〜3個の[2年or4年/圧縮]に   分割出力』する機能を追加しますので、ktMapLinker 関数に指定する休日マッ   プは、その機能を使って再作成してください。  (2) kt節気日付 関数 「立春」など「春分/秋分」以外の【二十四節気】日付を算出する関数です。    なお、この機能は AddinBox ホームページ『二十四節気の略算式』で解説した    式で算出していますので、通常のワークシートの計算式だけでも同じ算出をす    る事ができます。  (3) ktCalShape 関数  この関数をセルに記述すると、 「セルに値を表示しつつ、そのセル上にShape図を描画」 する事ができます。図形には「円・三角・四角・ハート」など9種類から選択    できます。[色]指定に加え[線のみ][塗潰し][半透明]といった指定もできます。 [条件付書式]によるセル強調を代替する機能として使ってください。条件付書式    のような「1セルには3パターンまで」という制限はありません。引数を条件式    で記述すれば幾つでもパターンを定義できます。    尚、[透過]効果はExcel バージョンによって見栄えが異なります。  (4) ktCalShape2 サブルーチン  ktCalShape 関数の[描画処理]本体です。VBAマクロから利用する場合は、    ktCalShape関数の代わりに、このサブルーチンを使います。  (5) ktCellMovePad サブルーチン  モードレスフォームではフォーム表示中に自由にセルを選択してアクティブ    セルを変えられますが、モーダルフォーム表示中にはシートに触れません。この    サブルーチンは、UserForm上にラベルを用意し、 そのラベル内で[Shift ]を押しながらマウスを動かした時に、 マウスの動いたのと同じ方向へアクティブセルを移動 させる機能を提供します。 カレンダーマーク描画フォームの左下にある白枠等で使っています。  (6) ktCalRepeat サブルーチン     ktCalDate 関数の『連続入力』バージョンを提供するサブルーチンです。 指定したセル範囲に対する、カレンダーを使った日付入力が、カレンダー    フォームを表示し続けた状態で可能になります。 4.バグフィックス   なし 5.その他   なし _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ _/ 【 Ver2.80 → Ver2.81 変更内容 】 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ 1.バグフィックス   【Excel2002 】の場合に限り、下記障害が発生した為、これを修正しました。   (障害)    アドイン登録時には問題ないが、その後でエクセルを起動した時に、    実行時エラーが発生し、kt関数をアドインしている限り、ブック操作が    出来なくなる。   (原因)    Ver2.80から、ktMsgBox(Ver3.1x)用にフォントリストを書式メニューバーの    Font-ComboBoxから取得していますが、ここにアクセスする為にはActiveな    Worksheetが存在する必要があります。エクセル起動時のアドイン読み込み    時点では、ActiveなWorksheetが存在しない為、一時的に「アドイン属性解除」    を行って対処しています。Excel97/2000では、これで問題なく取得できますが、    Excel2002においては、「アドイン属性解除」を行なってもFont-ComboBoxに    アクセスできない為に実行時エラーになりました。    アドイン登録は、白紙ブックなり、何かブックが開かれている状態で行います    から、ActiveなWorksheetが存在し、Font-ComboBoxへのアクセスが可能であり、    その為にエラーにはなりません。         (対処)    フォントリストの取得をAPIにより、直接取得するように変更します。    ただし、Excel97では使えない[AddressOf]演算子が必要な為、条件付コンパイル    によって、Excel97では従来通りに書式メニューバーより取得します。 2.その他   [Ver2.81]において、機能変更はありません。 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ _/ 【 Ver2.70 → Ver2.80 変更内容 】 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ 1.既存[関数/サブルーチン]の変更 (1) ktMsgBox / ktMsgBoxEX      [ktMsgBoxAddin Ver3.00 → Ver3.12 ]で再移植。      ・インストールされている全てのフォントが利用できます。      ・バグフィックス(3)の対応により、[Buttons]引数での自動メンバ表示を       取り止めます。      ・「ktMsgBox Wizard」の不具合を修正    (2) ktJR運賃期間      JR北海道/JR九州の区域内のみでの利用時の判定を追加 2.新規[関数/サブルーチン]    (1) ktWebColor2Num      ktMsgBox/ktMsgBoxEXでのカラー指定で、「色名」を使う場合の変換関数    (2) kt前年同曜日      指定「年数」だけ前後した年の『同月&同曜日位置の日付』を返します    (3) ktMultiCal      期間指定用に2つの日付を選択できるカレンダーフォームです。      利用方法は[ktCalDate]と同様に、関数呼び出しによりフォームがポップ      アップします。1クリック目で開始日、2クリック目で終了日を指定します。      カレンダーが2つ並んだレイアウトなので、月跨りの期間も簡単に指定      できます。2つのカレンダーの間隔(月数)は自由に変更できますので      「今月〜半年後の月」といった期間の日付も簡単に指定できます。 3.バグフィックス    (1) kt関数カテゴリ障害      Access などから、CreateObject により「kt関数Addin.xla 」を参照設定し      ているブックを呼び出した場合に、カテゴリ増設処理が異常終了するのを      修正しました。Ver2.61 にて修正した「カテゴリ増設に起因する保存確認」      とは別の障害です。    (2) ktMsgBox / ktMsgBoxEX 関数      WindowsXP の「ウィンドウスタイル:XPモード」において、コマンドボタンが      メッセージボックスの下端に接して配置される不具合を修正しました。      XPモードにおいて「タイトルバー」が従来のウィンドウスタイルに比べて      高さが高くなっているのが原因です。    (3) Excel97 でのアドイン登録障害      [Ver2.60]以降で報告の有った「Excel97 でのアドイン登録エラー」を      修正しました。 4.その他    (1) 配布ファイルに[ktFuncAddin_Note.txt]を追加しました。      CreateObjectで「kt関数アドインを参照しているブック」を呼び出す際の      注意事項です。内容については、上記ファイルもしくは『FAQ19/20』参照 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ _/ 【 Ver2.61 → Ver2.70 変更内容 】 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ 1.メニュー機能の追加/変更 他    (1) 『ktMsgBoxコード生成ツール 』      ktMsgBox/ktMsgBoxEX の体験およびソース生成ツールです。 2.既存[関数/サブルーチン]の変更    (1) 『ktMsgBox 』      [ktMsgBoxAddin Ver3.00 ]より再移植 3.新規[関数/サブルーチン]    (1) 『ktMsgBoxEX 』      [ktMsgBoxAddin Ver3.00 ]より移植    (2) 『ktMsgBoxPromptTypeInit 』      ktMsgBoxEX の[Prompt]初期化サブルーチン      [ktMsgBoxAddin Ver3.00 ]より移植 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ _/ 【 Ver2.60 → Ver2.61 変更内容 】 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ 1.バグフィックス   動作環境によって、エクセル終了時に     [kt関数Addin.xla]の保存確認ウィンドウ   が表示される場合がありましたので、これを回避するように修正しました。 2.その他   [Ver2.61]において、機能変更はありません。 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ _/ 【 Ver2.50 → Ver2.60 変更内容 】 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ 1.メニュー機能の追加/変更 他  (1) 『バージョン』    [ktSound]により『非同期連続演奏(チャイム機能)』させたWave再生を    停止させるボタンを追加。これは、「停止処理の組み込み忘れ」や「停止    前に何らかの原因でエクセルがダウン」等により、鳴り続けているWave音    を停止させる為のものです。  (2) 『祝日一覧表示』    出力先セルの指定でR1C1形式をサポート    複数年指定と年末年始の自動挿入をサポート  (3) 『休日マップ作成』    出力先セルの指定でR1C1形式をサポート  (4) 『暦シートの作成』    出力先セルの指定でR1C1形式をサポート  (5) 『休日Map情報』    表示用に使っていたMsgBox関数を ktMsgBox関数 に変え、背景を    薄紫(違いを強調する為)にしました。 2.既存[関数/サブルーチン]の変更  (1) 『kt六曜検索』関数    複数の六曜を一緒に指定できるようにしました。    これにより「大安、友引」のみの日付一覧といったものが簡単に作れます。  (2) 『ktWorkingTime』 および 『ktBoundaryTime』関数    引数『Serial (既定値:True)』を追加    [Serial:=False]とすると、返却値をシリアル値(Date型)の代わりに    【分(Long型)】で返します。得られた結果をシート上で更に集計など    する場合、その部分で再び小数誤差が出て来るので、分(整数)で    集計して【÷1440】とすれば、その危惧もなくなります。 3.新規[関数/サブルーチン]  (1) 『kt終端』関数    1行または1列の範囲で最終データの行/列番号を求める関数です。  (2) 『kt反転』関数    指定された文字列を逆に並び替えて返します。  (3) 『ktSound』サブルーチン    Waveファイルを演奏するAPI呼び出しをサポートするサブルーチンです。  (4) 『ktMsgBox』関数    表示位置/色指定などが出来る、MsgBoxの代替関数です。  (5) 『ktColumnChar』関数    列番号と列アドレス文字を相互変換する関数です。 4.バグフィックス    なし 5.その他   (1) 関数貼付ダイアログにおいて、kt関数の収録先を〔ユーザー定義〕から     専用の【kt関数アドイン】カテゴリに移しました。   (2) [ktCalDate]関数で、Ver2.50から追加された機能である、時刻入力フォーム     連携機能用の引数名が、ヘルプ(AMPM)と実際(時刻)で名前が違ってい     ました。ヘルプの方を正しい名前(時刻)に修正しました。 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ _/ 【 Ver2.40 → Ver2.50 変更内容 】 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ 1.『ktCalDate 』(カレンダー入力フォーム)   六曜表示機能を加えました。   「時刻入力フォーム」との連携機能を追加して【日付+時刻】の入力を   可能としました。   [11.]の問題に対処する為に、カレンダーフォームの利用対象期間を、   今までの『1900年〜』から『1868(明治元年)年〜』に拡張しました。   合わせて、【文字列として記述された日付(1900年以前の日付を含む)】   のセルから『kt関数メニュー:カレンダー入力』を呼び出した場合に、その   年月で初期表示されるように修正しました。 2.『kt固定休日EX 』関数を追加しました。   第1〜5曜日を定義できる拡張された「固定休日コード」と「任意休日」   「休日解除」の日付一覧をパラメータとして【休日マップの作成】フォーム   と同様の定義を関数で可能としました。 3.『ktTemp休日Map 』サブルーチンに指定する「固定休日コード」を   拡張して第1〜5曜日を定義できるようにしました。 4.【休日マップの作成】フォームのレイアウトを全面見直ししました。 5.『ktPasteCal 』サブルーチンに「休日マップ」パラメータを追加して休業日   表示を可能としました。 6.『kt営業日数』関数に「休業日数」パラメータを追加して、休業日数を   求める事が出来るようにしました。 7.『kt六曜検索』関数を追加しました。   【次の大安は何日?】といった日付検索ができます。 8.『kt干支』関数に【時刻の干支】を追加します。これに伴い、[¥]以外では   時刻を含む場合に、日付の「23時区切り」を適用します。   時刻の無い(0時)日付だけのデータでは、これによる影響はありません。 9.各種kt関数で『Date 型』引数に【12時以降】の時刻を持つシリアル値が渡さ   れた場合に、型変換関数(CLng )の仕様により、日付が繰り上がる可能性が   ありましたので、この影響を排除するように修正しました。   時刻を含まない日付だけのデータを使っている場合には、今まででも問題   ありません。 10.祝日法施行前の判定で「秋分の日・文化の日・勤労感謝の日」が    1948年で無効になっていたのを修正しました。 11.[1900/1/1]と記述されたセルから『kt関数メニュー:カレンダー入力』を    呼び出すと実行時エラーとなるのを修正しました。    これは、Excelの仕様により、セル上で[1900/1/1]と表示されているデータ    がVBAでは[1899/12/31]として扱われ、利用対象期間(1900年〜)から    外れる為です。カレンダー入力フォームの利用対象期間を明治元年    (1868年)まで広げてカバーしました。 12.[kt元号変換]の【解説】で明治元年の開始日付を旧暦日付で記載していま    したので修正しました(ヘルプのみの修正)。 13.『ktSelClock 』(時刻入力フォーム)を追加しました。 14.バージョン表示フォームを変更し、メニュー変更機能を組み込みました。 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ _/ 【 Ver2.30 → Ver2.40 変更内容 】 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ 1.関数『ktCTime 』を追加しました。    時刻シリアル値の小数誤差を取り除きます。    24時を越える時刻文字列をシリアル値に変換できます。 2.ktWorkingTime/ktBoundaryTime で、小数誤差を取り除く処理を   『ktCTime 』利用に変更しました。機能の変更はありません。 3.『ktPeriodYMD』に「ゼロ抑制」パラメータを追加しました。 4.メニューに『万年暦』を追加しました。 5.暦関連関数として、『kt和風月名』『kt干支』『kt旧暦』を   追加しました。 6.祝日判定ロジックを見直しました。 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ _/ 【 Ver2.20 → Ver2.30 変更内容 】 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ 1.カレンダー入力フォーム(ktCalDate 及び ktFormCal)   ・コメントをCaption部分に表示できるようにしました。   ・『入力規制』機能を追加しました     指定した期間内の日付のみ入力可とする『期間制限』と     営業日/休業日でどちらかのみ入力可とする『営休制限』     の2種類あります。   ・上記機能追加により、引数(省略可)が増えました。 2.関数『ktWorkingTime 』に集計パラメータを追加。    算出帯(本日/翌日)に沿って、集計する時間帯を[1/0]の並びで指定    する事により、複数の時間帯の合計時間を返す事ができます。    これにより、[通常午前+通常午後]や[早出残業+夜間残業]といった    同種の時間帯の合計時間を1回で求める事ができます。 3.関数『ktPeriodYMD 』の引数【算出対象】に"ym"を追加。    "ymd"の【日】部分をカットして『y年mヶ月』で編集して返します。    [4][4-xx]が「日」の切り上げなのに対して、"ym"は切り捨てに当たります。 4.休日マップ作成フォーム   ・[年始][年末][大晦日]ボタンを追加   ・「休日マップ」欄の表示/非表示ボタンの追加 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ _/ 【 Ver2.10 → Ver2.20 変更内容 】 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ 1.「kt営業日算出」のバグ修正    『休日マップ』指定&『日数=0』の場合に、営業日と休業日の判定が     間違っていたのを修正。 2.FaceId一覧の表示機能    コマンドバーのアイコンとして指定する『FaceId 』の一覧表示機能を    メニューに追加(このマクロはエクセルファンクラブ(VBA)の    スレッドで、わたしが回答したものです)。 3.関数『ktJR運賃期間』を新規追加    JRの特急/急行料金算定の『繁忙/閑散/通常期』を求める関数です。    (この関数はエクセルファンクラブ(関数)のスレッドで、わたしが     回答したものをマクロ化したものです)。 4.関数『ktPeriodYMD』に【学齢】算出機能を追加    生年月日と基準日付を基に、基準日付時点の【学齢】を求めます。    (この機能はエクセルファンクラブ(関数)のスレッドで、わたしが回答    したものをマクロ化したものです)。 5.関数『ktWorkingTime』で、【小数誤差】を含んだ時刻データの場合でも   正しく算出するように修正を加えました。インターフェースの変更はありません。 6.関数『ktBoundaryTime』を新規追加    FLOOR/CEILING関数の代替関数です。    小数誤差を含んだ時刻データでも正しく算出します。 7.メニュー『暦シートの作成』    [3x4] または [4x3] 配置を選択した場合に、自動的に1年間/Box(小)に    切り替える(既にBox(大)の場合は、そのまま)。    Box型暦の場合に【月火水木金土日】並びを指定可能にしました。 8.サブルーチン『kt暦作成』    Box型暦の場合に【月火水木金土日】並びを指定可能にしました。    この為に、省略可能なパラメータ「月曜から」を追加しました。 9.『ktFormCal』のフォームレイアウトを変更して、若干コンパクトにしました。 10.その他マクロコードの簡略化・レスポンス向上策など   ・『ktFormCal』と『ktFormPaletteEX』でボタンのイベント処理をクラス    モジュール化してマクロコードの無駄を無くしました。機能/操作方法    などへの変更はありません。   ・営業日関連の関数で無駄な処理を見直すことによって、若干レスポンスを    向上させました。 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ _/ 【 Ver2.00 → Ver2.10 変更内容 】 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ 1.ハッピーマンデー   2003年より「海の日」「敬老の日」を第3月曜日にする改正への対応です。   敬老の日と秋分の日が1日おいて並ぶ年では、その間の日が『国民の休日』   となります。 2.kt関数メニューの「暦シートの作成」   ・Box型で3x4、4x3(縦に1月→2月と、横に1月→2月)の配置を選択できる    ようにしました。   ・作成先シート指定時に、そのシートをActive にするようにしました。   ・作成先と休日Mapを同じシートとした場合には注意ダイアログを表示する 3.休日マップ作成フォームで、既存の「休日マップ」を修正する機能として   カレンダー出力で作成している『休日条件』を読み込む機能を追加しました。    4.ktPeriodYMD に『日数切り上げ』計算のパターンを追加しました。 5.Folder選択/閉じるボタンでExcel2002をサポート    ウィンドウクラスは[ThunderDFrame]でExcel2000と同じ 6.「国民の休日(5/4)」の取り扱い    『Ver2.00』では1986年以降の「5月4日」を無条件で『国民の休日』という    【祝日】として扱っていましたが、法律では    『国民の祝日に関する法律』     第3条 「国民の祝日」は、休日とする。       2 「国民の祝日」が日曜日にあたるときは、その翌日を休日とする。       3 その前日及び翌日が「国民の祝日」である日(日曜日にあたる日         及び前項に規定する休日にあたる日を除く。)は、休日とする。    となっており、5月4が      【日曜日】の場合は『祝日でななく只の日曜日』      【月曜日】の場合は『国民の休日という祝日』ではなく                    『憲法記念日(5月3日)の振替休日』    となるのが正しい扱いです。『Ver2.10』ではこの点を修正しました。    (1) 「日曜と祝日を共に休業日としている」場合には影響はありません。    (2) 「祝日を休業日にしていない」場合も影響ありません。    (3) したがって、VBA用に用意してある『固定休日』定数名       「kt_休日なし」「kt_土日」「kt_土日祝」「kt_日祝」       「kt_銀行休日」「kt_官庁1」「kt_官庁2」      を使っている場合には、影響ありません。    (4) 影響があるのは『月曜 & 祝日』など「日曜は休業日ではない & 祝日      は休業日」というパターンの場合です。    (5) 1973〜2100年で5月4日が日曜日になる年は下記の通りです。        1975 2003 2031 2059 2087        1980 2008 2036 2064 2092        1986 2014 2042 2070 2098        1997 2025 2053 2081      『月曜 & 祝日』などの休業日パターンでは、上記の年で5月4日(日曜)が        Ver2.00 ‥‥‥[休業日]        Ver2.10 ‥‥‥[営業日]      となります。 _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/