|
▼UO3 さん:
下記に返信します。
>まず、↑で、コードは元に戻しましょうと申し上げましたが、
>もしK列自体も休日なら翌日にしておく必要があれば元に戻さず、
>連絡した対処でお願いします。
K列は入力日ですので、休日の計算は不要です。
>=GetWorkDate(K10,AD19,AE10,AF10,AG10) というように書き直します。
>この機能は
>K10 が空白なら空白
>K10に値がある場合は、列挙された最後のセル(この場合はAG10)が空白なら空白。
>そうでない場合は、列挙されたものを合計。
>こういったものを考えています。
これはセルの関数をコードに変えるということですよね?
今IFで作ったコードではおっしゃるとおりかなり重いです。
この処理で軽くなるということですよね?
>
>このGetWOrkDateの中で、現在K列で行っているような休日チェックを行います。
>ちょっと気になっているのは、現在、この処理を、VBAの中でも、負荷の大きな
>Findメソッドを使っている点です。1つ、2つならどうってことはないのですが、
>おそらく膨大な数のセルに式が配置されていると思いますので、ここを少しでも
>軽くできるかどうかがポイント。
>土日も翌日回しということなら、ロジックの中で シート関数のNETWORKDAYS等も
>使えるかな?と思っているのですが、いやいや、そうではない、あくまで休日リスト
>の日付だけを翌日回しということなら、Findを使わざるを得ないかも。
>
>また、休日リストが、現在のように B4:S200 ではなく 1列にずらっとセット
>してあれば、Findより、やや軽めのMATCH関数が使えます。
>
あくまで休日リストでB4から下に一列は可能です。
|
|