• 締切済み

excel マクロ

エクセル マクロ 時間の計算 ・まずルールとして決められた時間 今回は『 8:00 』~『 17:00 』以外の時間外の『 同一日付 』の日付の計算をする エクセルのマクロを組もうと考えています。少し複雑な内容になります 考えている 作業としては 具体例を挙げますが (1) 『 同一日付 』の『 8:00 』~『 17:00 』《 以外にある時間外 》のまとめをしたい (2) この場合 08:30や16:50には反応せず 時間外の17:01~翌日の08:00までの時間外に反応するもの (3) その際 作業判定させるセルは横に並んだA、B、C、D、E、F、Gの中の『 C 』『 D 』『 E 』『 F 』『 G 』の与えられたデータで判定 (4) 基本的には下の例、 縦に並ぶ『 D 』セル内の 2012/07/10、7/12..と続く『 同一日付 』の時間外の時間を比較して (5) 『 同一日付 』の列の『 8:00 』~『 17:00 』《 以外にある時間外 》の 『 F 』と『 G 』セルの数字の最初の数字(時間)と最後の数字(時間)を取得し (6) 『 同一日付 』の列の『 8:00 』~『 17:00 』《 以外にある時間外 》の時間が重なっている 『 それ以外の時間 』には数字の上にーを引き《 エクセルの[ CTRL ]+数字の[ 5 ] 》で 引ける取り消し線 ーを引く 例 基本的に『 F 』に最小時間、『 G 』に最大時間が表示されます ≪総合判定で述べる判定方法では例外ありますが≫  17:10~17:20、 17:20~17:50とあれば 17:10~17:50と書き 『 (7)説明の動き 』   それ以外の時間には(6)の取り消し線を引きたい この際は17:10~17:20、 17:20~17:50の17:20に(6)の取り消し線を引きたい ※ 取り消し線を引いた行のセルの『 H 』セルのデータは削除 (7) 例 『 D 』セル内の 2012/07/10 の『 同一日付 』が終わる『 下のセル 』に 例( ● )黒丸の場所にセルを挿入し一旦『 空白を空け 』 その一旦『 空白を空け 』た『 A 』のセルに『 最初と最後の時間 』と書き込み その行の『 F 』と『 G 』に『 同一日付 』の数字の最初の数字(時間)と最後の数字(時間)と 『 G 』から『 F 』を引いた時間『 H 』の書き込みを 自動で処理し書き込むマクロを作りたいのです 例   A     D      F  G   H      2012/07/10   17:10 17:20 0:10      2012/07/10   17:20 17:50 0:30 ↓   A     D      F  G   H      2012/07/10   17:10 17:20                   ×      2012/07/10   17:20 17:50  セル挿入          × ●『 最初と最後の時間 』 17:10 17:50 0:40 ×が取り消し線あり (8) ・『 D 』セル内の比較する『 同一日付 』は『 縦に並んでおり 』、1つの時もあれば多くて20個 ・基本的に20日~翌月20日まで(土日祝が20日に当たれば18日~20日など前後しますが) (9) ・(5)のデータを取得し(7)の動きで『 同一日付 』の数字の最初の数字(時間)と最後の数字(時間) を書き込むので(7)で書き込む以外の 『 同一日付 』内の時間外の時間にはすべて取り消し線を引きます ・数字の上にーを引き《 エクセルのCTRL+数字の5 》で 引ける取り消し線を引き..が説明のテキストでは表現出来ませんでしたが..必要な作業です 例で 『 時間の下に× 』を書いて見ましたが、これが基本的な取り消し線を実行した感じの時です ◎ さらにここから先が総合判定要素として複雑なのですが『 同一日付 』内の時間外の時間の判定の仕方として 1.『 E 』セルに 《 休 》 表記あれば基本的に何も判定、動作なしでそのままの表記でOK。 ただし『 C 』セルに以下に説明する表記ある場合を除きます 2.『 C 』セルに『運転』と『予約』表記あり、その中で『停止』表記が出てきた場合には →『停止』表記の『 F 』のセルの数値を『最大値』として判定し(9)の動作の動き 『運転』と『予約』表記あり、その中で『停止』表記が出てきた場合には  その数値を『最大値』として判定し(9)の動作の動き(その時間は『停止』表記の時には『 G 』ではなく『 F 』に出てきます。) 3.『 C 』セルに『予約』、『予約取り消し』と連続して表記ある場合 『 同一日付 』で『 C 』セルに『予約』、『予約取り消し』と連続して表記があり、 『 D 』の日付『 F 』『 G 』の時間も同じならば(9)の動きで、その2行の『予約』、『予約取り消し』の 『 F 』『 G 』の時間には取り消し線、その2行の下に(9)の動きで『 H 』の場所に0:00と書き込みしたいのです 例   A   C     D      F   G   H      予約   2012/07/10  17:00 19:00 2:00    予約取り消し 2012/07/10  17:00 19:00 2:00 ↓   A   C     D      F   G   H      予約   2012/07/10  17:00 19:00                    ×  ×      予約取り消し 2012/07/10  17:00 19:00                    ×  × セル挿入           ●『 最初と最後の時間 』     17:00 19:00 0:00 4. 『 C 』セルに表記あるものとして『運転』『停止』『予約』『予約取り消し』の4種類の表記があります 5.『 同一日付 』の列の『 8:00 』~『 17:00 』《 以外にある時間外 》の処理を行いたいのですが 場合によっては『予約』や『運転』で処理動作の必要のない時間内から、動作の必要な時間外へと『予約』『運転』されている場合もあり 例 今回は『 8:00 』~『 17:00 』以外の時間外の処理なので、『 E 』の休日ではなく( 休日は◎の総合判定あれば処理必要 ) 6. 時間内~時間外へと進む時間外の処理動作 平日の『予約』や『運転』『 16:00 』~『 19:00 』の場合 ≪ 16:00 ≫~≪ 17:00 ≫は時間内なので動作処理の必要はなく 処理としては指定した時間  今回は『 8:00 』~『 17:00 』内の時間であれば  ≪平日≫の『予約』や『運転』『 16:00 』~『 19:00 』や『 06:00 』~『 08:00 』の場合 (9)の要領で 『 17:00 』~『 19:00 』とその時間内を含むセルの下に≪ 訂正 ≫をしてから処理したいのです 例   A     D      F  G   H      2012/07/10   16:00 19:00 3:00 ↓   A     D      F  G   H      2012/07/10   16:00 19:00                ×  × ●セル挿入 ≪ 訂正 ≫  17:00 19:00 2:00  ×が取り消し線あり 上手く伝えられているか分かりませんが、どうぞよろしくお願い致します

みんなの回答

  • mindatg
  • ベストアンサー率48% (110/227)
回答No.1

恐らく回答は付かないと思います。 回答が付かず、質問の仕方が悪かったのか?と再度質問する前に下記をどうぞ ・項目が多すぎです。無駄な改行が目立ち非常に可読性が悪いです ・項目の途中でいきなり定義が出てきています。(運転だの予約だの)前提条件は最初に列記した方がいいです。 ・入力前、入力後、マクロ実行前、マクロ実行後 せめてマクロ実行後にこんな感じにしたいとイメージ画像でも付けておけば分かり易いです。 ・その結構なボリュームのマクロをタダで作ってもらうには虫が良すぎる話です

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル マクロ

    ・まずルールとして決められた時間 今回は『 8:00 』~『 17:00 』以外の時間外の『 同一日付 』の日付の計算をするエクセルの マクロを組もうと考えています。少し複雑な内容になりますので私では組めなく困っております。 どうかお力添えをお願い致します。 考えている 作業としては 具体例を挙げますが (1) 『 同一日付 』の『 8:00 』~『 17:00 』以外の時間外のまとめをしたい (2) 下の例、 縦に並ぶ『 D 』セル内の 2012/07/10、7/12..と続く『 同一日付 』の時間外の時間を比較して (3) 『 同一日付 』の『 E 』と『 F 』の数字の最初の数字(時間)と最後の数字(時間)を取得し (4) 『 それ以外の時間 』には数字の上にーを引き《 エクセルの[ CTRL ]+数字の[ 5 ] 》で 引ける取り消し線 ーを引き (5) 『 D 』セル内の 2012/07/10 の『 同一日付 』が終わる『 下のセル 』 例( ● )黒丸の場所にセルを挿入し一旦『 空白を空け 』 その一旦『 空白を空け 』た『 A 』のセルに『 最初と最後の時間 』と書き込み その行の『 E 』と『 F 』に『 同一日付 』の数字の最初の数字(時間)と最後の数字(時間)を 自動で書き込むマクロを作りたいのです (6) ・『 D 』セル内の比較する『 同一日付 』は『 縦に並んでおり 』、1つの時もあれば多くて20個 ・基本的に20日~翌月20日まで(土日祝が20日に当たれば18日~20日など前後しますが) ・(3)のデータを取得し(5)で『 同一日付 』の数字の最初の数字(時間)と最後の数字(時間) を書き込むので(5)で書き込む以外の 『 同一日付 』内の時間外の時間にはすべて取り消し線を引きます ・数字の上にーを引き《 エクセルのCTRL+数字の5 》で 引ける取り消し線を引き..が説明のテキストでは表現出来ませんでしたが..必要な作業です 例で 『 時間の下に× 』を書いて見ましたが、これが取り消し線を実行した感じの時です 上手く伝えられているか分かりませんが、どうぞよろしくお願致します    A  | B | C  |     D  | E  |  F ____________|_______|_______|________________|__________________      |   |   | 2012/07/10| 17:24 | 17:37 _________________________________________________________________      |   |   | 2012/07/10| 17:15 | 17:50 __________________________________________________________________            |   |   | 2012/07/10| 17:15 | 17:22 __________________________________________________________________      |   |    |     |    |     | ●(セル挿入) → 『 最初と最後の時間 』と書き込み ___________|_______|_______|__________|_________|___________________      |   |   | 2012/07/12| 17:28 | 17:33 ___________|_______|______|___________|_________|___×___|___×___      |   |   | 2012/07/12| 17:35 | 17:38 ___________|_______|______|___________|_________|___×___|___×___      |   |   | 2012/07/12| 17:43 | 17:54 ___________|_______|______|___________|_________|___×___|___×___ 『 最初と最後の時間 』   |    |17:28  | 17:54 ___________|_______|______|___________|_________|___×___|___×___      |   |   | 2012/07/12| 17:37 | 17:45 ___________|_______|_______|___________|_________|_______|___________      |   |   | 2012/07/12| 17:50 | 17:53 ___________|_______|_______|___________|_________|_______|__________

  • エクセルのマクロ(関数?)について質問です。

    会社で、以下の資料作成を依頼されましたが、いろいろ調べましたが全くやり方の見当がつかないので、教えてください。。 病院に来院された患者さんで、 (1)予約時間に遅刻した (2)予約時間よりも早く受付、予約時間後検査開始 (3)予約時間よりも早く受付、予約時間よりも早く検査実施 以上3パターンの患者さんの数を把握したく、表を作成しなくてはなりません。 以下のURLに、サンプルファイルをアップしました。 http://kie.nu/yF2 列H(のセルH11からずっと下まで)に、上記3パターンが一発(もしくは2~3発)で表示されるようにしたいのです。 列A、B、Dの日時は、別のデータベースから抽出したものなので、最初から入力されています。 列Hのパターンを出す方法ですが、まず列C、E、F、Gにそれぞれ数式を入れないといけません。 例として、行11を試しに算出してみると、 ・セルC11=D11-B11(時間のみ引き算したいのですが、日付も入っているので出来なくて困ってます。。以下同様) ・セルE11=D11-A11 ・セルF11=D11-A11(計算結果がマイナスになる場合はゼロと表示されるようにしたい) ・セルG11=A11-B11 この計算で、G11の数字がマイナスになれば(1)のパターン、 E11の待ち時間のセルと、G11のセルの数字が両方プラスになっていれば(2)のパターン、 F11の待ち時間がゼロ、E11がマイナス、G11がプラスになっていれば(3)のパターン ということになります。。 あと、セルの色も、パターン(1)の時は列Cのセルが、パターン(2)の時は列Eのセルが、パターン(3)の時は列Fのセルを それぞれ黄色になるようにしたいのです。 すごく説明も複雑になってしまい大変申し訳ないのですが、 要は列Hに上記3パターンを簡単に表示させる方法が知りたいのです。 無理なお願いをしていることは承知しているので、「こんなの答えられない」といった趣旨の回答はご遠慮いただけたらと思います。。 出来れば至急でお返事いただきたいのですが、宜しくお願いいたします。

  • エクセル関数おしえください。

    時間管理にもとずいて、計算をする式を教えてください。 下記の場合は、どのような関数でいけますか? 宜しくお願いします。 例)(1) エクセルに入力は、 セルA1「開始時間」 セルB1「終了時間」 セルC1「時間内労働」(9時間までで1時間休憩) セルD1「時間外時間」(8時間労働を越えた時間) セルE1「深夜時間外」(22時を超えた時間) *時給は@1350を基本とし、時間外は1.25増し、深夜は1.5増しとする。 *時間は1分は10分に切り上げる(3:51の場合は4:00) 導き出したい合計は、セルF1に「時間内労働」の時給合計、セルG1に「時間外時間」の時給合計、セルH1に「深夜時間外合計」セルI1にセルF1とG1とH1の総合計です。 言葉が足らないかもしれませんが、よきアドバイス宜しくお願いします。

  • エクセル関数 マクロ

    EXCELで作ってある表に数字を入力する時、 (例)セルA1⇒B1⇒C1(⇒D1⇒F1)と入力した後エンターキーを押したら、 セルA2⇒B2⇒C2(⇒D2⇒F2)へ、またエンターキーを押したら、 セルA3⇒B3⇒C3(⇒D1⇒F3)と移動する方法(関数?マクロ?!)を教えて下さい。

  • EXCELのマクロで。。。

    シートAのセルC2の値(数字)を シートBのE、F、Gの各列のうち空いている一番左のセルで、かつ、D列に何か書いてある一番下の行のセル に転記したいです。 たとえば、シートBが図のような場合にはF28です。これが毎回、変化します。 マクロの記述を教えて下さい。よろしくお願い致します。

  • エクセル2000マクロでの計算表示

    セル(F1)に3というデータが仮に入っているとします。 セル(F2)2、セル(G2)1、セル(H2)に12という計算で表示させたい 場合はマクロではどう記述すればよいでしょうか。 仮にF1に2というデータが入ってきた場合は、 セル(F2)1、セル(G2)12、セル(H2)に11という計算で表示させたい。 下記に表示例を示しています。 F1が1の場合 12、11、10    4の場合 3 2 1    5の場合 4 3 2 6の場合 5 4 3 7の場合 6 5 4 8の場合 7 6 5 9の場合 8 7 6 10の場合 9 8 7 11の場合 10 9 8 12の場合 11 10 9 教えてください。

  • 勤務時間 Excel

    エクセルで勤務時間から時間外勤務時間を出す計算式を教えて下さい。 勤務時間は仕事に応じてなので不規則です。 Excel 出社時間 C2 退勤時間 F2 ①8:00〜17:00 → セルG2 ②17:00〜22:00 → セルH2 ③22:00〜24:00 → セルI2 ④00:00(24:00)〜05:00(29:00) → セルJ2 ⑤05:00(29:00)〜08:00(32:00) → セルK2 例として 出社 17:15~退社20:00 出社 18:00~退社26:00 出社 3:00~退社05:00 出社 3:00~退社09:00 出社 10:00~退社16:00 出社時間から記入するため25:00表記の場合と01:00表記の場合があります。 いろいろ調べたのですが難しくて思うように計算できませんでした(T_T) わかる方いましたら、是非教えて下さい宜しくお願いします。

  • エクセルの表で、縦方向に検索・照会する方法

    今、C10~Z10に数字が入っています。 下方のC11~Z110にも、数字が入っています。 このC11~Z110のセルに入っている数字がC10~Z10の同列の数字と同じ場合には、C11~Z110のそれぞれのセルに「○」、異なる場合には「×」と表記させたいのです。 次のように、です。    C D E F G H I J K N・・・・・・・・・Z 10 3 7 2 6 8 2 3 1 0 1・・・・・・・・・4 11 2 7 3 8 8 9 3 2 2 1・・・・・・・・・4 12 5 3 2 4 6 1 7 1 4 6・・・・・・・・・6            ↓    C D E F G H I J K N・・・・・・・・・Z 10 3 7 2 6 8 2 3 1 0 1・・・・・・・・・4 11 ×○ ×× ○ ×○ ×× ○・・・・・・・・○ 12 ×× ○× × ×× ○× ×・・・・・・・・× どのようにすれば、それが可能になりますか? 関数などに詳しい方の、ご教示をお願い致します。

  • エクセル

    以下のような表から、文字を認識し一つのセルに”0”と”1”の数字で現したいのですが、教えて下さい。   A  B  C  D  E  F  G  H  I   1 ○     ○  ○  ○    ○   10111010 2    ○  ○  ○  ○    ○   01111010 というように、A~Hに○が入っていてIに○を拾って数字で出したいのですが・・宜しくお願いします。

  • Excelの時間表記について

    Excelでの時間表記についてご質問します。 表示形式を[h]:mm;としているセルの値を別セルで数字表記することは可能でしょうか。 例:78:15(という表示を)  ⇒別セルで78.25h(という表示にする。) Excel関数にお詳しい方、よろしくお願いします。

専門家に質問してみよう