最近 勉強を始めました、ご教授願います。
Excel2010 PC XPです。
* 下記の方法で計算させて セルに労働時間を表示させています。
*起動後、 最初の退社時間入力後、労働時間の表示が遅いです。
次以降は すぐに表示されます。
(休息・入社時間は決まった時間ですので入力済)。
*入社時間c1、退社時間d1、休憩時間e1、労働時間f1
Function・を使用して セルf2に=労働時間(c2,d2,e2)と入れてます。
Function 労働時間(ByRef 入社時間 As Date, ByRef 退社時間 As Date, ByRef 休息時間 As Date)
各種 計算等....
End Function
上記の方法はネットにて検索して そのまま 利用しております。
よろしくお願いいたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは。
残念ですが、Excelの場合は、VBAにはVBAだけの割り当てのメモリがありますから、いくら物理的メモリを増やしたところで、初動時のスピードとは、直接関係がありません。初動時に遅くなるのは、すぐに、Excel用の仮想メモリが確保できているわけではありませんから、使おうとするVBAのコードのオブジェクトが生成するまでの間、時間が掛かるものだ考えられます。
最初の段階では、組み込み関数の数百倍ぐらいだと思います。だから、あまり単純な計算の場合は、ワークシートに数式を入れたほうが速いはずです。ただし、その違いを認識するのは、初動時だけです。それでも、VBA関数のほうが、十数倍遅いはずです。
>Function 労働時間(ByRef 入社時間 As Date, ByRef 退社時間 As Date, ByRef 休息時間 As Date)
戻り値は何か、質問のコードでは分かりませんが、そのコードでは、引数に、値だけを入れれば済むものですから、ByRefは不要なような気がします。なぜそうしているのか、その必要性が分かりません。ただし、この場合のByRefとByVal自体のスピードの違いは、ほとんど変わらないはずですが。
>If 入社時間 + 退社時間 = 0 Then
'//
>Dim a As Date
>a=入社時間 + 退社時間
>If a =0 Then ・・
どちらでも変わらないと思います。
入社時間 + 退社時間が0になるのは、今のところ、引数そのものを忘れた以外には考えられませんが、引数そのものを入れなければ、エラーになるはずですから、不要かもしれません。
この回答への補足
WindFaller様
ご回答 誠にありがとうございます。
ここ数日、悩んでいました。
Dimも Byrefも必要はありませんでした。
ご指摘の生成に時間が掛かるですが
2秒位かかり まさかと思っていました。
Dimも無意味に変更していました。
(結局その後、同じ状態になってしまいました。 )
色々、試していたところ 未完成の数日前のBOOKを起動しましたら
すぐに結果がでましたのでビックリして調べてみました。
違いは他のセルに 記述エラーの(=時間())がありました。
それを削除すると、初回入力が遅くなるのに気が付いたところでした。
まさか? エラーーコード?があると 初期の計算が止まる?と・・
又、訳の分からない事を考えて、コードを削除しシートに再計算のSubを入れましたら
パッと結果がでるようになりました。
a=入社時間 + 退社時間 ですが
休日は 入社、退社、休息は空白です。
(労働時間=退社時間-休息時間-入社時間)が 0:00になるので、
a =0の場合は 労働時間=””で 空白にしてます。
再計算が正しいかどうかは 分かりません。
とりあえずは 大丈夫のようですが 命令を理解するのがとても難しいです。
これからも よろしくお願いいたします。
ありがとうございます。
No.1
- 回答日時:
例えばパソコンのメモリーが1GBとか
少ないって事はないですか?
⇒XPだと3.2GB位までは認識できますから、
2~3GBまで増やしてみるとか?
あるいは常駐ソフトが多いとかでも
影響するかな???
遅いってレベルがどの位なのかはわかりませんが、
その後と比べてちょっと遅いって事なら
割り切ってしまうのも手ですけどね。
この回答への補足
初歩的な記述ミス?が あったようです。
動作していたので気がつきませんでした。
---
If 入社時間 + 退社時間 = 0 Then
多分? これがダメのようでした。
---
変更後
Dim a As Date
a=入社時間 + 退社時間
If a =0 Then ・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで休憩時間を引く時と、引かない時の数式 3 2022/11/05 11:48
- Excel(エクセル) エクセル2019の関数を教えてください。 8 2022/12/16 12:45
- アルバイト・パート 22年10月から社会保険適用拡大について、詳しい方いらっしゃいましたら教えてください 2 2022/09/01 20:40
- 人事・法務・広報 法定外労働時間の算出 4 2022/08/31 07:48
- 労働相談 有給休暇使用時の賃金の計算方法について 5 2022/04/04 00:02
- その他(法律) 試しにGoogle Bard 36協定の要約しました。 1 2023/05/28 02:10
- Excel(エクセル) 出退勤管理の遅刻・早退時間について 3 2023/08/10 15:33
- 労働相談 新しい職場が労働基準法の労働時間に違反してるのかしてないのか知りたいです。 私自身 14:00~22 3 2023/03/02 23:31
- Access(アクセス) ExcelのVBAコードについて教えてください。 4 2023/01/20 09:44
- 厚生年金 2022年10月から、パート・アルバイト短時間労働者の厚生年金・社会保険の加入義務 2 2022/09/09 22:52
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
EXCEL VBA マクロ 実行する度に処理速度がどんどん遅くなる原因が知りたい
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
エクセル(マクロ)のファイルを開くのに時間がかかる
その他(Microsoft Office)
-
-
4
Excel VBAが徐々に遅くなる
Excel(エクセル)
-
5
worksheet_changeがループする
PowerPoint(パワーポイント)
-
6
エクセルで別シートの同じ位置にオブジェクトをコピーしたい
その他(Microsoft Office)
-
7
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
8
同じマクロのプログラムなのに処理速度が違う
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
臨時職員をした後の履歴書の書き方
-
入社?入組?
-
郵政のお仕事をしていた方 - 履...
-
学校で働いていた場合の職歴の...
-
自分の入社日・退社日を知りたい。
-
本日は失礼させて頂きましたor...
-
人事、労務で行ってきた業務内...
-
法人に入社(?)した時は何と...
-
エクセル 時間計算 複数の条件
-
一身上の都合?それとも健康上...
-
入社か退社か書け、と書かれて...
-
一般課程試験
-
店舗改装で辞めたらなんて書け...
-
履歴書、職歴欄の書き方(時系...
-
履歴書の職歴
-
一身上の都合による退社について
-
同じ会社に3度就職したときの履...
-
寿退社は一身上の都合なのでし...
-
[転職] 会社都合の退社の場合、...
-
履歴書 職歴の書き方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
臨時職員をした後の履歴書の書き方
-
入社?入組?
-
学校で働いていた場合の職歴の...
-
本日は失礼させて頂きましたor...
-
郵政のお仕事をしていた方 - 履...
-
自分の入社日・退社日を知りたい。
-
Accessで勤続年数(○年○ヶ月)...
-
一般課程試験
-
同じ会社に3度就職したときの履...
-
郵便局員をしていました
-
履歴書の職歴
-
分社した会社へ転籍した場合の...
-
入社か退社か書け、と書かれて...
-
同じ会社に出戻りのときは職務...
-
人事、労務で行ってきた業務内...
-
法人に入社(?)した時は何と...
-
有限会社から株式会社に変更が...
-
一身上の都合?それとも健康上...
-
エクセル 深夜勤務時間の算出方法
-
Excel マクロ1回目の結果反応遅...
おすすめ情報