[[20210917172450]] 『期限が近付いたら通知してくれるリマインダーを作』(momoe) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『期限が近付いたら通知してくれるリマインダーを作成する方法』(momoe)

お客様へ納品している機械の機台リストがあります(13,000件)
機械の付属品を定期的に交換しなければならず、期日が近づいてきた機械を
警告もしくは抽出する資料を作りたいと思っています。

台数が少ない場合は、条件付き書式などで、色を付けたりしたらいいかと思っていたのですが、管理する台数が増え、作り替えたいのです。

そこで、どのような機能を使うのがいいのか分からず教えていただきたく思います。

【やりたいこと】
機台リストより付属品交換期日を割り出し抽出する
日付入力セルを設定し『いつからいつまでの間で該当する』機械を抽出する
その他に『1か月以内』『2か月以内』『3か月以内』などのボタンを設置してワンクリックでリストの抽出をする

元となるデータは、
1.A列〜ID列までで、13,385行。
2.キーとなる交換部品の情報は下記の5種類
3.耐用年数はそれぞれ異なります

[Mバッテリー]
AA列(交換した日) 例:2021/9/17
AB列(耐用年数)  例:2

[Eバッテリー]
AC列(交換した日) 
AD列(耐用年数) 

[REバッテリー]
AE列(交換した日)
AF列(耐用年数)

[TPバッテリー]
AG列(交換した日)
AH列(耐用年数)

[オイル]
AI列(交換した日)
AJ列(耐用年数)

のようになっていて、交換した日から耐用年数後が、次回交換日となります。
このような場合、全てがマクロになりますか?
それとも、関数や条件付き書式で作成できるものでしょうか。
また、検索条件に合致したもののみ対象機種を表示させたいのですが、
可能でしょうか。

ざっくりとした質問で申し訳ないのですが、まずは作成方法の可能性を知ってから、進めていきたいと思いこのような質問となりました。
何卒宜しくお願いいたします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 こんばんわ ^^
わたし数式はダメダメなので、できるかどぉ〜かも判断できませんが
VBAで、ご自身でお作りになるのなら、お手伝い出来るかもしれません
。。。←多分ですが、私が駄目でも、お付き合い下さる先生はたくさん
居られると思います。←多分ですが^^;
いろいろ方法は有ると思いますが、一案で
作業シートを確保
情報を加工[交換日を算出して追加]
あとは、フイルター詳細で、お好みに合わせて抽出
みたいな感じでも出来なくはないかと。。。(*'▽')
でわでわm(_ _)m

(隠居Z) 2021/09/17(金) 18:01


 ↑大先輩...お茶を ドーゾ(。•ᴗ-)_旦~

 いつも大先輩の… お茶汲み(おちゃくみ)係と、トイレ掃除当番をさせて頂いております。
 私くし、あみなと申します。(momoe)さん 初めまして(*_ _)ペコリ...お辞儀

 御社の重要な管理業務( 生命線 )とも言えるシステム改新のお話を…私くしような
 へなちょこぴーまんがお相手して良いのか疑問ですが…(momoe)さんの投稿日から
 土・日曜日を挟むこともあって各回答者( 大先輩 )様方は、きっとデートでお忙しいかったのでしょう。
 いつもならあるはずの詳細についての質問、並びに具体的な回答が有りませんでしたので、筆を執った次第であります。

 では、本題へ

 >『期限が近付いたら通知してくれるリマインダーを作成する方法』(momoe)

 リマインダー機能「警告表示機能」についてですが、勿論可能です。
 多くの場合は、業務開始( 仕事初め )が良いかと思います。
 エクセルを開くと、MsgBox ( ダイアログ ) 等を利用し、最初の警告を促す事が可能です。

 また、毎日定刻時間に リマインダー機能「警告表示機能」をさせる事も可能です。
 例えば、昼食後の 13:00とか、帰宅前の、17:00など複数の設定も可能です。
 ただし、マクロを組み込んだエクセルを開いていないと処理を実行する事はできません。

 >お客様へ納品している機械の機台リストがあります(13,000件)
 機械の付属品を定期的に交換しなければならず、期日が近づいてきた機械を
 警告もしくは抽出する資料を作りたいと思っています。

 機械の機台リストがあります(13,000件)と記載がありますが、13,000行程の内容の
 業務管理BOOKがあるという事でしょうか?
 もしそうならですが、機械の機台は、種類はどれ位になりますでしょうか?
 また、機種製造品番なども当然のようにありますでしょうか?
 また、機種製造品番の管理は必ず有ると思いますが、納品先のお客様も判別できるようにコード化されていますでしょうか?

 なぜこのようなことをお聴きするかと申し上げますと、キーとなる交換部品の情報は下記の5種類
 となります。と記述がございますが、場合によっては、抽出キーが下記の内容( 4項目 )もございますと
 さらに便利なシステムを構築できる可能性がございますのでお聴きしています。

 ( 4項目 )
 ・交換対象機種
 ・機種製造品番
 ・納品先(お客様)
 ・出張交換日( 納品期限 )

 >台数が少ない場合は、条件付き書式などで、色を付けたりしたらいいかと思っていたのですが、管理する台数が増え、作り替えたいのです。
 そこで、どのような機能を使うのがいいのか分からず教えていただきたく思います。

 台数が少ない場合も、多くなっても条件付き書式を利用して期限切れが近い交換バッテリーの交換日を
 目立たせるのは、とても有効的な方法であると思います。
 条件付き書式の例は後で一例を記述しますので参考としてください。

 どのような機能を使うのがいいのか? ですが、(隠居Z)さんもおっしゃられているように

 ・作業シート( 作業列 )を確保
 ・フイルター詳細で、お好みに合わせて抽出

 上記の2点は、ほぼ確定的に必要性を感じます。

【やりたいこと】

 >機台リストより付属品交換期日を割り出し抽出する
 日付入力セルを設定し『いつからいつまでの間で該当する』機械を抽出する
 その他に『1か月以内』『2か月以内』『3か月以内』などのボタンを設置してワンクリックでリストの抽出をする

 機台リストより付属品交換期日を割り出し抽出するについては問題なく可能と思います。
 ただ抽出方法をどうするかだけです。

 手頃な順番と私が思う方法
 1. フイルター機能を利用する。
 2. オートフィルター(AutoFilter)VBAを利用する。
 3. Dictionaryオブジェクト(連想配列)を利用する。
 4. ピボットテーブルを利用する。
 5.  PowerQueryを利用する。

 日付入力セルを設定し『いつからいつまでの間で該当する』機械を抽出するについては
 少し、お互いの理解を確認しなければいけないです。
 最後に、私ならこう作りこむかな?ってテーブルを掲示しますので参考にしてください。

 >元となるデータは、
 1.A列〜ID列までで、13,385行。
 2.キーとなる交換部品の情報は下記の5種類
 3.耐用年数はそれぞれ異なります

 AA列〜ID列までの内容は明確に掲示されていますので問題ない内容かと思われます。
 ただし、前にも申し上げたことと被りますが、A列〜Z列までの内容が不足しています。
 その全ての列の情報は必要性がありませんが、支障の無い範囲で情報を開示していただきたく思います。
 有るといいかなと思う情報は先にも言いましたが一つ追加して下記です。

 ( 5項目 )
 ・交換対象機種
 ・機種製造品番
 ・納品先(お客様)
 ・出張交換日( 納品期限 )
 ・出張交換( 担当者 )

 >のようになっていて、交換した日から耐用年数後が、次回交換日となります。
 このような場合、全てがマクロになりますか?
 それとも、関数や条件付き書式で作成できるものでしょうか。

 これは、各回答者の意見が分かれる可能性がありますが、いずれにせよ交換が完了したら
 当月内のバッテリー交換が完了した事を明確に解かるようにしなければなりません。
 私ならここはマクロで、次回の交換日を入力させます。

 もう少々解りやすく申し上げますと、[ M バッテリー ]の1行目は、条件付き書式で
 交換期限を過ぎていますので日付けのフォントが赤くなっています。
 そのAA4セルを選択して、マクロを実行すると… 右隣の耐用年数( 3年後 )1095 を計算値に入れて
 自動で 2024/9/10 に切替わるようにします。また、フォントも青色にします。
 計算の早い方なら暗算でキー入力するのでしょうが…私はアンポんなんでできませんww

     |[A]    |[B]         |[C]         |[D]   |[E]         |[F]|[G]|[H]|[I]|[J]|[K]|[L]|[M]|[N]|[O]|[P]|[Q]|[R]|[S]|[T]|[U]|[V]|[W]|[X]|[Y]|[Z]|[AA]        |[AB]    |[AC]        |[AD]    |[AE]         |[AF]    |[AG]         |[AH]    |[AI]      |[AJ]    |[AK]                            |[AL]|[AM]|[AN]|[AO]|[AP]       |[AQ]                    |[AR]|[AS]|[AT]|[AU]
 [1] |9月19日|13:00       |17:30       |      |出張交換日  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |[ M バッテリー ]|        |[ E バッテリー ]|        |[ RE バッテリー ]|        |[ TP バッテリー ]|        |[ オイル ]   |        |交換期限切れ早見一覧 ( 残日数 ) |    |    |    |    |[ Mバッテリー ]|                        |    |    |    |    
 [2] |No.    |交換対象機種|機種製造品番|納品先|( 納品期限 )|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |交換日      |耐用年数|交換日      |耐用年数|交換日       |耐用年数|交換日       |耐用年数|交換日    |耐用年数|M                               |E   |RE  |TP  |オイル |色番号目安 |納品日からの仮算出用の値|    |    |    |    
 [3] |       |            |            |      |            |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |            |        |            |        |             |        |             |        |          |        |                                |    |    |    |    |           |                        |    |    |    |    
 [4] |A00001 |機械タイプ1 |TADD-001    |A社   |2021/09/18  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |2021/09/11  |    1095|2021/09/03  |     730|2021/09/18   |    1825|2022/09/18   |     730|2023/01/31|     730|                             -8 |-16 | -1 |359 |492 |          3|                     -10| -15|   0| 365| 500
 [5] |A00002 |機械タイプ1 |TADD-002    |B社   |2021/09/25  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |2021/09/20  |    1095|2021/09/20  |     730|2021/09/20   |    1825|2022/02/22   |     730|2021/09/20|     730|                              1 |  1 |  1 |153 |  1 |         18|                      -5|  -5|  -5| 150|  -5
 [6] |A00003 |機械タイプ1 |TADD-003    |C社   |2021/09/28  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |2022/01/11  |    1095|2021/12/27  |     730|2021/10/08   |    1825|2022/07/05   |     730|2022/07/05|     730|                            112 | 98 | 19 |286 |286 |          1|                     105|  90|  10| 280| 280
 [7] |A00004 |機械タイプ1 |TADD-004    |D社   |2021/10/21  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |2021/10/26  |    1095|2021/10/26  |     730|2021/10/26   |    1825|2022/04/19   |     730|2022/04/19|     730|                             37 | 37 | 37 |210 |210 |         44|                       5|   5|   5| 180| 180
 [8] |A00005 |機械タイプ1 |TADD-005    |E社   |2021/11/22  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |2021/11/12  |    1095|2022/07/30  |     730|2022/07/30   |    1825|2022/09/18   |     730|2021/11/12|     730|                             53 |311 |311 |359 | 53 |         44|                     -10| 250| 250| 300| -10
 [9] |A00006 |機械タイプ2 |TRXV-001    |A社   |2021/09/22  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |2021/09/24  |    1095|2021/09/17  |     730|2021/09/17   |    1825|2023/05/15   |     730|2021/09/17|     730|                              5 | -2 | -2 |596 | -2 |         18|                       2|  -5|  -5| 600|  -5
 [10]|A00007 |機械タイプ2 |TRXV-002    |C社   |2021/10/01  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |2021/09/21  |    1095|2021/09/26  |     730|2021/09/21   |    1825|2022/12/25   |     730|2021/09/21|     730|                              2 |  7 |  2 |456 |  2 |         18|                     -10|  -5| -10| 450| -10
 [11]|A00008 |機械タイプ2 |TRXV-003    |E社   |2021/12/05  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |2021/11/25  |    1095|2021/11/25  |     730|2021/11/25   |    1825|2022/06/23   |     730|2022/06/23|     730|                             66 | 66 | 66 |274 |274 |         43|                     -10| -10| -10| 200| 200
 [12]|A00009 |機械タイプ2 |TRXV-004    |F社   |2021/10/07  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |2021/09/22  |    1095|2022/03/16  |     730|2021/09/27   |    1825|2022/03/16   |     730|2022/03/16|     730|                              3 |177 |  8 |177 |177 |         18|                     -15| 160| -10| 160| 160
 [13]|A00010 |機械タイプ3 |TXOE-001    |A社   |2021/09/16  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |2021/09/16  |    1095|2021/09/06  |     730|2021/09/06   |    1825|2022/01/14   |     730|2021/09/06|     730|                             -3 |-13 |-13 |115 |-13 |          3|                       0| -10| -10| 120| -10
 [14]|A00011 |機械タイプ3 |TXOE-002    |E社   |2021/11/12  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |2021/10/28  |    1095|2022/05/31  |     730|2021/10/28   |    1825|2022/05/31   |     730|2022/05/31|     730|                             39 |252 | 39 |252 |252 |         44|                     -15| 200| -15| 200| 200
 [15]|A00012 |機械タイプ3 |TXOE-003    |F社   |2021/10/30  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |2022/11/11  |    1095|2021/10/20  |     730|2021/10/20   |    1825|2023/06/22   |     730|2023/06/22|     730|                            412 | 31 | 31 |633 |633 |          1|                     377| -10| -10| 600| 600
 [16]|A00013 |機械タイプ3 |TXOE-004    |G社   |2021/10/04  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |2021/10/09  |    1095|2022/04/02  |     730|2022/04/02   |    1825|2022/04/02   |     730|2021/10/09|     730|                             20 |193 |193 |193 | 20 |         18|                       5| 180| 180| 180|   5

 ※上記の表における各バッテリー及びオイルの交換日は、納品期限から、APからAU列に計算値を入力して
 足し算したものです。サンプル表なのでAPからAU列は作成終了時にはありません。
 また、耐用年数に関しては3年なら×365した計算値になっています。

 ※上記の表における3行目は、フィルターを掛ける行となります。

 下記は 条件付き書式の例となります。
 またAP列の例は、[ Mバッテリー ] 交換基準を色の対応表からインデックス番号を明記したサンプルです。

 青 : インデックス番号(5)                                  当月交換済
 黒 : インデックス番号(1)                                  月末(請求締日)交換済を黒にする
 ライム(緑系) : インデックス番号(43)                       交換日より 90日以内
 ゴールド(オレンジ系) : インデックス番号(46)               交換日まで 60日以内
 プラム(茶系) : インデックス番号(18)                       交換日まで 30日以内
 赤 : インデックス番号(3)                                  交換日経過済

 参考 : Officeのチカラ by きたみあきこ
 https://officek.net/excelvba/v-range/vr-format/vrf-colorindexnum/

 >また、検索条件に合致したもののみ対象機種を表示させたいのですが、
 可能でしょうか。

 全く問題なく可能です。

 >ざっくりとした質問で申し訳ないのですが、まずは作成方法の可能性を知ってから、進めていきたいと思いこのような質問となりました。
 何卒宜しくお願いいたします。

 いろいろ回答をさせていただきましたが、そこで質問です。

 (momoe)さんはご自身でVBAで抽出したり、コピーしたり、フォントの色を変更するなど
 ある程度作成が可能な方なのでしょうか?

 と、私ならこうするかな例です。あくまで参考程度にしてください。

 1. Sheet1〜Sheet12までを、月間の交換処理実績を保存する場所にする(使用しない時は非表示に)
 2. Sheet13 は、交換機種台帳とする
 3. Sheet14 は、業務進捗管理とする
 ※月間カレンダーを作成し、納品期限(出張交換日)、バッテリー期限交換日、御社休日管理、
 マーク型、★、●、出 などとして VBAと関数を利用して作成するかな…
 4. Sheet15 は、機種管理リストとする
 5. Sheet16 は、登録管理リストとする
 6. Sheet17 は、項目別抽出シートとする

 また、(momoe)さんが希望される実装ですとシートに実行ボタンの配置が
 多くなりそうなので、私ならユーザーフォームで全て実行できるように作成するかな〜うん多分です。

 えと、(momoe)さんが多少VBAが解る程度なら、多くの方から細かいマクロパーツを頂いて
 上記のような簡単で良いのでサンプルを一度作成し、どんな動きの実装をするかを体験するのが一番
 作りたいアプリに近づけるのではないかと思います。
 私も微力ながら少し位は提供は可能です。

 希望される作りこみには、簡素化されたものなら回答者側の時間の
 ある方で3〜5日程度ですが、組み込むマクロを細かい点まで配慮するとなると
 打ち合わせも含めて、1日2時間程度しか作業できない回答者の場合は、2〜3週間はかかるかな?と思います。
 既存の管理表があるので制作時間はきっと大丈夫かなと思いますが

 ちなみに…私はお昼は当然別の仕事をしてるので応援するにも
 多くの時間は取れません。

 最後に、以前に… 誰(どなた)だったか忘れましたが、規模の大きな物を作成するには…
 意欲と、迫力と根気、と誠意が必要だと言っておられました。

 私流ですが、ユーザーフォーム等で規模の大きなものを作成するときは
 ペットのように愛情を持って接します。(笑)    ヨチヨチ(*´・д・)ノ -⊆^U)┬┬~

 ではでは、成功を祈ります。

(あみな) 2021/09/20(月) 01:06


 大分包括的な解決方針の提示、提案がございました。

 それに加えて、質問者さんにお願いがあります。

 簡単なモデルケースを提示してみてはどうですか?
 ・行番号、列番号がわかる数件の具体的なデータを提示して、
 ・どこにどのような結果を表示したいのかを具体的に示してみてはどうですか?
   条件付き書式でこうする、このようなリストを作成したい、等々。具体的に。

既に頂いた提案なども参考にされたうえで、
しかし、ご自分の言葉で纏めていただきたいですね。
その作業を通じて、あなたの要望がご自身で明確になると思います。
また、それをもとに、このような対応方法があります、
といった具体的な議論がさらにできるのではないでしょうか。

(γ) 2021/09/20(月) 11:59


 こんばんわ〜
あみな さん 凄く詳細に渡るご提案ですね。。。感服致しました。
見習わないと。。。m(__)m
(*^ ^*)///。。。。-⊆^U)┬┬~ 。。。 
でわ、また。。。m(_ _)m
(隠居Z) 2021/09/20(月) 19:18

(隠居Z様)

コメントありがとうございます。
やはり、作業シートを確保は必須のようですね。

(あみな様)

ホントに詳細に記載頂きまして感謝いたします。
私にはいささか高度な事に挑戦しようとしている事は承知しておりますが、
これが完成したときには、とても仕事の効率も上がり、また社員のテンションも上がるはずですし、
是非お力をお借りしたく存じます。

まず、

リマインダー機能「警告表示機能」についてですが、勿論可能です。 多くの場合は、業務開始( 仕事初め )が良いかと思います。
エクセルを開くと、MsgBox ( ダイアログ ) 等を利用し、最初の警告を促す事が可能です。
また、毎日定刻時間に リマインダー機能「警告表示機能」をさせる事も可能です。
例えば、昼食後の 13:00とか、帰宅前の、17:00など複数の設定も可能です。

ⓜ定刻時間など、複数の設定が可能という事も知り、驚きです…。

機械の機台リストがあります(13,000件)と記載がありますが、13,000行程の内容の 業務管理BOOKがあるという事でしょうか?

ⓜ弊社のシステムで基台マスターが存在します。

 その基台マスターをCSVデータとして排出したデータがあります

もしそうならですが、機械の機台は、種類はどれ位になりますでしょうか?

ⓜ機械の種類は現時点で『81種類』あります

また、機種製造品番なども当然のようにありますでしょうか? また、機種製造品番の管理は必ず有ると思いますが、納品先のお客様も判別できるようにコード化されていますでしょうか?

ⓜ機械1台1台に管理番号がございます。もちろんその他製造番号も存在します。
ⓜ また下記の5項目についてもございます。
( 5項目 )

 ・交換対象機種
 ・機種製造品番
 ・納品先(お客様)
 ・出張交換日( 納品期限 )
 ・出張交換( 担当者 )

抽出方法についてですが、

手頃な順番と私が思う方法 1. フイルター機能を利用する。
2. オートフィルター(AutoFilter)VBAを利用する。
3. Dictionaryオブジェクト(連想配列)を利用する。
4. ピボットテーブルを利用する。
5. PowerQueryを利用する。

ⓜ 1.2.4については、操作方法はさておき、知っていますが、3.5については認識しておりませんでした…。
ⓜいずれにしても、作業者が簡単な操作で、対象機械を抽出出来る事が目的ですので、
ⓜフィルターやピボットテーブルでの操作が必要なもの以外で出来たら最高だと思っています。

その全ての列の情報は必要性がありませんが、支障の無い範囲で情報を開示していただきたく思います。

ⓜについては、手こずっております…。整理しプレビューで見やすいようにし、後程更新させてください。
ⓜお時間いただいて申し訳ございませんが、不慣れな為ご容赦ください。必ず更新させていただきます。

(Y様)

簡単なモデルケースを提示してみてはどうですか? ・行番号、列番号がわかる数件の具体的なデータを提示して、 ・どこにどのような結果を表示したいのかを具体的に示してみてはどうですか? 条件付き書式でこうする、このようなリストを作成したい、等々。具体的に。 そうですよね。
現時点の所有しているデータを後程更新します。
また、出来るかどうか分かりませんが、このような形でリストを作成したいという状況も
ご相談させていただけたら幸いです。

(momoe) 2021/09/21(火) 17:51


 コメントありがとうございました。

 | 現時点の所有しているデータを後程更新します。
 | また、出来るかどうか分かりませんが、このような形でリストを作成したいという状況も
 | ご相談させていただけたら幸いです。

 実際のデータを提示するということよりも、プロトタイプ的なものに限定して
 データ提供していただくのがよいのではないかと思います。
 私の提案はそうしたプロトタイプを念頭においたものであって、実際に使用している
 データそのもの(データはサンプリングするとしても全項目に渡るもの)を念頭に
 置いたものではありませんでした。

 その提示を受けて、基本的な部分に関するコードなりやり方を議論することで、
 どのようなやり方がありうるのか、御社が今後、業務としてそれをシステム化していくに
 あたっての参考にしていただく、そのようなことに留めるほうがよいと思います。

 私は中心的な回答者ではありませんので、こうした発言が適当かどうか分かりませんが、
 まったくの私見ということで、以下、発言させていただきます。

 最初に申し上げたいのは、こうした質問掲示板で、実際に稼働する完全な製品的なものを
 求められたり、これを提供することはいささか違う方向かなと思います。

 そうした業務の請負的なことは、こうした質問掲示板の趣旨から逸脱しますし、
 回答者側に相当の負荷がかかると思うからです。(既にそのような負荷に関するコメントが
 ありましたよね。)

 もちろん、結果として、かなり実務に供することができるコードが提示されることが
 ありますが、業務に使用しうるのであれば、それなりにリスク対応や、今後のメンテナンス
 に関する配慮も必要になるわけで、一種の責任が生ずるわけですが、こうしたことは質問
 掲示板の回答者が負い切れるものではないと思います。

(γ) 2021/09/21(火) 20:10


Y様

コメントありがとうございます。
おっしゃる通り掲示板回答者が責任を負いきれるものではない
という事には理解しているつもりです。
個人差はあると思いますが、私個人的にはそう思っています。
こういった掲示板で、私は大いに勉強になってきましたし、とてもありがたく思っています。
また、業務に使用している資料についても、リスクという面では自覚しております。
また、それを回答者に対して責める気持ちもありませんし、メンテナンスも自らまた調べたりしております。
そして、本格的に勉強するならば、そういった教室に通うべきなのかもしれませんね。
でもそういったことが出来ない人たちが、詳しい方々に教えを問う場なんだと思っていました。
また、必要としている人が多くいらっしゃるので、この掲示板は長い間続いているんだと思っています。

的確な回答となっているか不安ですが^^;
ご指摘は真摯に受け止めております。

(momoe) 2021/09/22(水) 12:09


あみな様

なんとか、元データを載せる事が出来ました…お時間かかってしまってスイマセン。
下記のようなCSVデータを弊社システムよりダウンロードすることが出来、そのデータを使って部品交換が必要な期日が迫っているものや、
期間を区切ったうえで、抽出出来ればと思っています。
いろいろとご指導いただいておりますが、わたくしの知識と言えば、人より少し関数に対して詳しい程度で、今までVBAについてはこの場で
教えていただいたコードを元に、変化させたり、似たようなコードを使って時短に努めている程度です。
ですので、素人に近いと思っています。
そんな知識の人間が、たいそれた資料を求めるなと言われればなんとも言い返すことが出来ないのですが、ただ、機能として
便利な機能があるという事は認識しており、それが使えたらなんとありがたいかと思っている次第です。

     |[A]    |[B]     |[C]      |[D]   |[E]         |[F]       |[G]    |[H]     |[I]       |[J]     |[K]      |[L]|[M]|[N]|[O]    |[P]|[Q]       |[R]|[S]|[T]|[U]|[V]|[W]|[X]|[Y]|[Z]|[AA]           |[AB]    |[AC]           |[AD]    |[AE]           |[AF]    |[AG]            |[AH]    |[AI]       |[AJ]    |[AK]  |[AL]|[AM]      |[AN]      |[AO]|[AP]   
 [1] |管理NO |需要家名|設備NO   |ライン   |機種名      |本体型式    |本体製番 |制御型式  |制御製番  |部品供給期限 |製造年   |   |   |   |用途   |   |据付日    |   |   |   |   |   |   |   |   |   |[Mバッテリー交換日]|耐用年数|[Eバッテリー交換日]|耐用年数|[REバッテリー交換日]|耐用年数|[TPバッテリー交換日]|耐用年数|[オイル交換日]|耐用年数|   |    |更新日    |交換担当者|    |     |                             
 [2] |  1001|?鰍`    |4436-00R |組立1 |RR-008A   |AA-1FMR81   |S0747   |BB-1FMR81 |S0747     |2019/6/30    |2004     |   |   |   |CO2    |   |2010/5/10 |   |   |   |   |   |   |   |   |   |2016/10/27     |5       |2019/1/16      |2    |2020/4/16       |4    |2020/4/16       |4       |2016/11/22 |3    |      |    |2020/4/16 |はなこ    |    |     |    
 [3] |   1002|?鰍a    |#1ライン    |4Sライン |VV-1400A    |YY-1MMR41TA |A0120    |YA-1FHJ90 |A0120C    |2010/5/16    |1998     |   |   |   |MAG    |   |2008/10/6 |   |   |   |   |   |   |   |   |   |2020/2/14      |5       |2014/1/5       |2       |2017/10/7       |2       |2017/10/8       |4       |2017/10/8  |3       |      |    |          |太郎      |    |     |    

(momoe)さんが希望される実装ですとシートに実行ボタンの配置が
 多くなりそうなので、私ならユーザーフォームで全て実行できるように作成するかな〜うん多分です。
 ⓜ恥ずかしながらユーザーフォームという機能にたいしては、無知です…。
  少し調べてみましたが…なんだか難しそうですね(>_<)

これは、各回答者の意見が分かれる可能性がありますが、いずれにせよ交換が完了したら
 当月内のバッテリー交換が完了した事を明確に解かるようにしなければなりません。
 私ならここはマクロで、次回の交換日を入力させます。
 もう少々解りやすく申し上げますと、[ M バッテリー ]の1行目は、条件付き書式で
 交換期限を過ぎていますので日付けのフォントが赤くなっています。
 そのAA4セルを選択して、マクロを実行すると… 右隣の耐用年数( 3年後 )1095 を計算値に入れて
 自動で 2024/9/10 に切替わるようにします。また、フォントも青色にします。
ⓜ次回の交換日をマクロで入力させるなんて素晴らしいです。

(momoe)さんはご自身でVBAで抽出したり、コピーしたり、フォントの色を変更するなど
 ある程度作成が可能な方なのでしょうか?
ⓜ先にも書きましたが、過去に教えていただいたコードを使って、手を加えたりする程度でした。
ただそれも、膨大なデータを雛形に自動的に転記して、印刷するというマクロで、検索・抽出等は
したことがありません。
一から自分でマクロを組むことは出来ないに等しいです…。

1. Sheet1〜Sheet12までを、月間の交換処理実績を保存する場所にする(使用しない時は非表示に)
 2. Sheet13 は、交換機種台帳とする
 3. Sheet14 は、業務進捗管理とする
 ※月間カレンダーを作成し、納品期限(出張交換日)、バッテリー期限交換日、御社休日管理、
 マーク型、★、●、出 などとして VBAと関数を利用して作成するかな…
 4. Sheet15 は、機種管理リストとする
 5. Sheet16 は、登録管理リストとする
 6. Sheet17 は、項目別抽出シートとする
ⓜこの文章だけで、私の頭の中で想像するのが難しく、手が止まってしまいました。

意欲と根気と、作り上げてみたいという気持ちは持っているつもりです。
何卒お力添えを頂けたらありがたいです。

(momoe) 2021/09/22(水) 16:36


私は議論するのはけしからん、などと言っていませんよ。
むしろ、その議論の前提としての入力、出力を考えて提示してください、
と申しあげたわけです。
ただ、市販されている製品のようなりっぱなユーザーインターフェイスを
備えたようなものを所望されたりするのは、いささか違うのではないか、
とコメントしました。ここがカチンときましたか?
 
それで、出力ですが、まず、あなたが必要としている情報から提示されたら
どうですか?

どんなリストがあれば、交換作業の役に立つんですか、
簡単なもの、主要な項目があれば、漏れがあってもいいのですから、
実務担当者さんとしての意見、案を提示したらどうですか?

(γ) 2021/09/22(水) 17:18


普通に思いつくのは、
・期限(色々な条件があるでしょう)の種類ごとに
・期限が到来する予定の対象に背景色を着けたうえで
・元と同様の項目を持ったリストを出力することです。

それで十分かも知れません。
担当者毎の絞り込みはオートフィルタで各担当者が各自実行するわけです。
いや、やっぱり、担当者ごとの一覧リストも出力したいとか、色々あるでしょう。
それはあなたが考えていただかないといけません。

まずは、こんなところでしょうか?

そのほか、交換終了に伴って、どんな作業を今しているのか、
これらをサポートするものが何か必要か、それは、実態を知っているあなたが
考えないと分かりません。

(γ) 2021/09/22(水) 17:43


Y様

私の方こそ、なにかカチンとさせてしまったようで大変申し訳ございません。
私は全くカチンとは思っておりませんでした。
見当違いのコメントをしてしまったのでしたら、私の読解力がなく情けないですし、
私としては全くそのような文章を書いたつもりではなかったので、丁寧に返答したつもりが
そのようにとられてしまったことは、まず日本語、文章を勉強なければと…反省しております。

(momoe) 2021/09/22(水) 18:01


 こんばんわ。。。^^
情報をご提示いただいたようですが。
項目名が空欄の所が、随所あるのですが、実際は、何らかの項目名があるのでしょうか
それとも、ご呈示通り、バラバラ、範囲になっているのでせうか。
それと、当初、
>>A列〜ID列までで、13,385行。
との事でしたが、実際はID列まで238列あるのですよね。
取込方と、処理速度の事も勘案すると、回答者様のお知りになりたい事柄かと。。。^^;
期間限定で抽出の対象年月日とは、据え付け年月日の事でせうか。
気になった点だけで、、、↑ も多分何方がアドバイスされるにしても必要かもです
私がそぉ、思っているだけでしたら。お許しを。。
いいのが、出来るとよいですね。でわでわ 。。。m(_ _)m
(隠居Z) 2021/09/22(水) 18:24

個人で対応するとしたら、フィルタオプション(をマクロにしたもの)を使って抽出しますね。
仕様も提示されませんし、余り船頭が多くてもいけないので、私はここで降ります。以上です。

(γ) 2021/09/22(水) 20:35


何を、どのように、どこにするといったことが一言もでてきませんね。
これが提示できなければ質問やめてしまえばいい。
何か議論に見えてくる気がする。
(ん) 2021/09/23(木) 18:10

 >>A列〜ID列までで、13,385行。
 との事でしたが、実際はID列まで238列あるのですよね。

 (隠居Z)さま

 流石でございます… 列数( Range ) をちゃんと見てるでありますね。
 私なんか…AJ列 ( 耐用年数 )で、テーブル範囲終わりだと思ってたで orz...

 やっぱり35年間…Excel してると見るとこ( 確認する所 ) 違うであります。ぬかりなし…

 いつも私…=COLUMN() 設置して数えてたけど…(隠居Z)さまは、どうやって数えるですか?

 推定で思うこと…ベテランさんは ↓ こうだよね?

   '変数宣言
    Dim IRow As Integer
    Dim MyCol As Integer

    '範囲選択
    Range("A1:ID1").Select

    '範囲の行数&列数
    IRow = Selection.Rows.Count
    MyCol = Selection.Columns.Count
    MsgBox IRow & "行" & MyCol & "列"

 それとも指で数えるですか? (σ・∀・)σ 列数ゲッツ

 ꒰  ・౪・๑꒱ 羊が一匹... 羊が二匹...日が暮れるでありますな
 他に良い方法があれば、ご教授くださいませ。

 (momoe)さんへ

 返信がないでございますな… 頭の中が、もう真っ白でちゅか? てんぱりすぎてんでちゅかね?
 提示が上手く表現できないとか… 整理できないとか、理解できなくて直ぐに返信できなくてももいいか 
ら

 それ以上に大事なこと。

 「 信義礼節 」

 初回、このスレにコメントを入れてくださった方には、
 全員に、お礼のコメントを…出来るだけ12時間以内にする。

 どうしていいのか解らないなら…皆さんお時間ください。
 と一言ないとだめでちゅよ。

(あみな) 2021/09/24(金) 16:27


 こんにちわ ^^
w。。。するどい!。。。指、使ってますよ。たまに。。。^^;
↑うそっぽい。。。年寄りなので、頻繁に使ってるかも。(^◇^)v
他には、26で割ったり。1,2と入力後横へ。マウスでずりずり。。。
ですかね。数式コラムンもたまにつかいます。です。
あみなさん、のコードがトレンディ〜かも。。。
m(_ _)m。。。
(隠居Z) 2021/09/24(金) 17:04

 (´-ω-`)ウーン 26で割ったり…そんな技があるですか

 ちょっとしらべるでちゅ…

 ↓なんか変なの出てきた…わけわからんw
 列番号をアルファベットExcel変換する方法 - Office - Microsoft
 https://docs.microsoft.com/ja-jp/office/troubleshoot/excel/convert-excel-column-numbers

 やっぱりマウスでずりずりですよね。

 (¯▽¯ )ノ\ズリズリ____________o(_△_o))))))))) ウギャギャー

(あみな) 2021/09/24(金) 19:04


 >>(´-ω-`)ウーン 26で割ったり…そんな技があるですか
w。^^;
すみませんすみません。老人のたわごとです。
そんな技などありゃしません。←99ぱーせんと(/_;)
ま、アルファベットの数が26なので、そんな気がしただけです
わたし、かなり、いい加減な老人なので、お許しを。。。m(__)m
今後ともよろしくお願いいたします。
それはそうと、トピ主様からお便りがありませんね。
決して、気迫が、希薄、になったりは、していないかと。^^;
きっと、諸般の事情でお忙しいのでせう。でわでわ。。。m(_ _)m
(隠居Z) 2021/09/24(金) 19:51

 追伸。。。www
あったみたいですね〜〜〜〜www
きっと、数学に堪能な方、なのでせうね。
わたしは、お〜のぉ、わかりませえ〜ん
m(__)m。。。←でも、解らないなりに、解明したいな
とは、思いました、サイトご紹介有難う御座います。
( ..)φメモメモ
momoe さん、お騒がせして、すみません
m(_ _)m、
(隠居Z) 2021/09/24(金) 20:04

 スゴ─(〃''艸''〃)─ィ♡ さちゅが(隠居Z)さまです。

 可能性が 0.00000000000000001% の成功率でも (・・∂)あれば ?
 エクセルで考えるのは開発者には必要なことですよね。
(あみな) 2021/09/24(金) 20:14

恐縮で御座います。m(__)m
(隠居Z) 2021/09/24(金) 20:34

(隠居Z)様

返信が遅くなり大変申し訳ございません。

>項目名が空欄の所が、随所あるのですが、実際は、何らかの項目名があるのでしょうか
はい。あります。
ただし、AO〜IDまでは項目名は設定されているものの、
情報としてはほぼ何もありません。
(たまに入力されている程度です)

>期間限定で抽出の対象年月日とは、据え付け年月日の事でせうか。
いえ。各部品交換日より、耐用年数を割り出した期間のことで、
例えば、
Mバッテリー交換日=2016/10/27
耐用年数=5年
交換日から、5年経過した『2021/10/26』
を計算し抽出したいと考えております。

(あみな)様

反応遅くなってしまい申し訳ございません。
この場で質問し続ける事をやめた方がいいのか…いや、でもなんとか出来上がったらとっても素晴らしいですし、
作ってみたいという気持ちと、無知な私には手を付けるべきではないのか、などいろいろ悩み、お返事できずにおりました。
いずれにせよ、ご指摘の通りお礼や、コメントを残すべきでした。
申し訳ございません。

自分の中で整理すると、元々の希望は、リマインダー機能「警告表示機能」で
基台管理が出来たらなと思ったのが最初で、その機能が存在するのは
分かっていましたが、実際に設定したことも、見たこともなかったので、
まずは私のやりたいことが可能なのかということをお聞きすることからスタートしたいと思い、こちらで質問し始めました。
まずは、そのリマインダー機能を使って、抽出出来る事が第一で、
その他付属して別のシートなどに、自ら検索機能を設定できたらいいなと思っています。
完成した資料は、私だけではなく、関係する社員(エクセルにうとい社員含む)が難しい事を考えず、自分が取りたい情報を抽出できるというのが
一番の理想です。
ですので、元データシートのほかに、検索シートなどを設けて、
交換期限が迫っている該当した機種の、抽出したい期間が『今日から年末まで』のように指定したセルに
【2021/9/27】〜【2021/12/31】
と入力する、もしくはカレンダーのようなマークを配置してそこをクリックすると
カレンダーが表示され、検索開始日付をクリック、検索終了日付をクリック、するなどして、
抽出期間を指定したいと思っています。
※各自日付を入力する場合、大文字・小文字の入力や、数字・文字列、などの入力間違いが発生するのを避けたいなと思いました。

それが、基本的には下記?D項目あります
1.[Mバッテリー]
AA列(交換した日) 例:2021/9/17
AB列(耐用年数)  例:2

2.[Eバッテリー]
AC列(交換した日) 
AD列(耐用年数) 

3.[REバッテリー]
AE列(交換した日)
AF列(耐用年数)

4.[TPバッテリー]
AG列(交換した日)
AH列(耐用年数)

5.[オイル]
AI列(交換した日)
AJ列(耐用年数)

となります。
また、当初ご提案いただいたように、
>もう少々解りやすく申し上げますと、[ M バッテリー ]の1行目は、条件付き書式で
>交換期限を過ぎていますので日付けのフォントが赤くなっています。
>そのAA4セルを選択して、マクロを実行すると… 右隣の耐用年数( 3年後 )1095 を計算値に入れて
>自動で 2024/9/10 に切替わるようにします。また、フォントも青色にします。
のように、交換実施したら、次回の交換期限を自動で変更されるようにしたいと思います。

それが出来たうえで、
その中から欲しい情報を取り出すという事が出来ればと思うのですが、
6.機種指定で、例えばA1セルに管理番号(A列)を入力しB1セルに検索開始ボタンを設定して、検索開始…
すると、その指定した機械の情報が全てみられるというもの。

7.もう一つは、いくつか機械名(E列)がある中で、A2セルに機種名を入れて、B1セルに設定した検索開始ボタンを押して検索開始…
そうするとA2にて指定した機種に合致する機種のみ表示される

8.その他に、需要家名(B列)の検索というのもA3セルに入力し、B1セルに設定した検索開始ボタンを押して検索開始…
すると、特定の需要家の所有する機械が表示される

出来れば、6.7.8については、文字数5文字くらいまで入力し、あいまい検索が可能だと更にありがたいです。
ただ、すでにご指摘があったように、エクセルのフィルター機能がそれに当たるな〜とも思っていて設定したとしても、便利機能となりうるのか?と思ったのも事実です…。

(momoe) 2021/09/27(月) 15:51


横から失礼します。

思い描いてらっしゃる動作をVBAでプログラミングすれば可能でしょう。

それをご自身でプログラミングし、実現しますか?
それとも回答者から提供されたコードで実現したいですか?

前者であれば、全てとは言いませんが、可能な限りご自身で作成し、
詰まったポイントを質問なさればいいでしょう。

後者であれば、ご自身でメンテ出来ないことになりますので、
お勧めしません。
それより、数式+条件付き書式でリマインダー機能を実装するほうが、
身の丈に合っていませんか?

思い描いているような事が実現できれば便利ですよね。
それを手に入れるために、VBAを習得している方々がいるわけです。
簡単ではないですが、チャレンジしてみてもいいかもしれません。
(tkit) 2021/09/27(月) 16:55


(tkit)様

コメントありがとうございます。
現時点では、先にも述べたように素人同然なので、ご質問の
前者か後者かといわれたら、現時点では後者です…。

>全てとは言いませんが、可能な限りご自身で作成し、
>詰まったポイントを質問なさればいいでしょう。
本来はそれが正しい形なのかもしれませんね。

私自身でメンテできないとのご指摘は、その通りかもしれませんが、今まで何度もこちらのサイトを
利用させていただいていて、教えていただいたコードをまずは使って、
そこから勉強する、理解するという形をとってきました。
知識はまだまだですし、マクロについては、まだまだ経験はありません。
お勧めしませんというご意見は理解しますが、自信でプログラミング出来ていたら、
質問せず、おっしゃるように詰まったポイントで、いろいろ調べたら理解できるのかもしれませんね。

>簡単ではないですが、チャレンジしてみてもいいかもしれません。
私は少なからず、チャレンジしてみようと思っていますが、
これは、どこかに通って習得しなさいということでしょうか。
こういった場でいろいろ目にしたり、実装してみたりしてはいけないのでしょうか。

(momoe) 2021/09/27(月) 17:49


お邪魔します。

元データに作業列(5列)を追加することは可能ですか。

(マナ) 2021/09/27(月) 18:48


長すぎて読んでいられないので
これまでの経緯を無視になりますが…

 最低限これだけでよいのなら
 お手伝いします。

 雛形のブックを用意して
 指定セルに抽出条件を入力
 指定シートに元データを取り込み
 フィルターの詳細設定で抽出

 これだけではだめですか。

 これでよければ、まずは、手作業でできるだけ設定して
 その後でマクロで自動化するのが初心者でも簡単です。

 >クリックするとカレンダーが表示され、
 >検索開始日付をクリック、検索終了日付をクリック

 そんな便利機能(個人的には便利ともいませんが)は
 将来、勉強して改良していってください。
 とりあえず入力規則で十分ではありませんか。

(マナ) 2021/09/27(月) 20:01


 ヒョコ |ૂ•ᴗ•⸝⸝) ...(momoe)さん悩んでおられたか

 作り込みの形式はどうであれ、(tkit)さんのおっしゃるとうり
 簡単ではないですが、チャレンジしてみてもいいかもしれませんね。

 (momoe)さんの言ってる 6,7,8 の意味がイマイチイメージできないが、
(マナ)さんがおっしゃってる入力規則は...きっと下記URLのような事は
 しないのかと言っているのではなかろうか?

 ◆連動するドロップダウンリストの作り方。
 https://dekiru.net/article/18901/

 (o'ω'o)入力規則 モキュ?

(あみな) 2021/09/28(火) 17:13


 追伸。

 カレンダーでも、需要家名などでもこんなかんじで作るって意味です。
(あみな) 2021/09/28(火) 17:19

 >私は少なからず、チャレンジしてみようと思っていますが、
 >これは、どこかに通って習得しなさいということでしょうか。
 >こういった場でいろいろ目にしたり、実装してみたりしてはいけないのでしょうか。

 どなたか親切な方が作成してくれるかもしれませんし、
 実装すること自体は自己責任なので悪いことはないでしょう。

 質問者さんが「勉強する、理解するという形をとってきました。」というのであれば、
 まずコードを書いて、動作させてみればいいと思いますよ。
 何事もやってみなければ、経験にはなりません。

 私事ですが、ネット情報のみで習得しました。
 検索すれば、先生になりえる情報が多々ヒットしますよ。
 習得するまでは、当然、努力と時間は必要です。

 また、他の方々と共有するなら、尚更ご自身で作るほうがいいように思えるのですが。
 若しくは、ご自身で業者に発注するのも手ですね。

 私の案は数式ですので、提示しておきます。
 A1セル:日付(シリアル値)
 B1セル:耐用年数(数値)

 期限日取得
 =EOMONTH(A1,B1*12)-DATEDIF(A1,EOMONTH(A1,B1*12),"YD")-1

 期限日がC1セルなら
 =DATEDIF(A1,C1,"M")
 で月数が取得できます。

 あとは、月数に条件付き書式で色を付ければいいですし、
 フィルタで月数を絞り込むこともできるでしょう。

(tkit) 2021/09/29(水) 13:20


>この場で質問し続ける事をやめた方がいいのか
(ん)さんが指摘されています。
なぜこれが答えられないのですか。
質問し続ける事をやめた方がいいのでは。
(momoe) 2021/09/27(月) 15:51 も内容が同一で議論になっていませんか。

(*?) 2021/09/29(水) 16:40


話を全く読んでませんが、↓だけ。
>クリックするとカレンダーが表示され
いわゆるカレンダーコントロールの話であれば、↓が参考になるのではないでしょうか?
https://blog.djuggernaut.com/excel-vba-calendar-control/

(もこな2) 2021/09/30(木) 05:07


(マナ)様

コメントありがとうございます。
>元データに作業列(5列)を追加することは可能ですか。
はい。可能です。

>クリックするとカレンダーが表示され、
>検索開始日付をクリック、検索終了日付をクリック
>そんな便利機能(個人的には便利ともいませんが)は
>将来、勉強して改良していってください。
 私が改良しなくても すでに情報提供されているサイトがありましたね^^;
(もこな2)さんが教えてくださっています。

大変ありがたい情報ですね。

(もこな2)様

>いわゆるカレンダーコントロールの話であれば、↓が参考になるのではないでしょうか?

すっきりしました。私の求めていた情報でした。一度よく読んでチャレンジしてみます。
大変助かりました。

(tkit)様

教えてくださった関数にを一度実施してみます。ありがとうございました。

>また、他の方々と共有するなら、尚更ご自身で作るほうがいいように思えるのですが。

 若しくは、ご自身で業者に発注するのも手ですね。

まぁそれも手ですね

でもそれではこのサイトで質問して詳しい方が助言をしてくださるという機能が果たされませんね^^;

>フィルタで月数を絞り込むこともできるでしょう。

私の説明の仕方に問題があったのは申し訳ございませんが、
そいうったフィルタで操作するのではなくそもそもはリマインダー機能を第一に考え

関係するその他大勢の人間が簡単に情報がとれる資料が作りたいと思っているので希望の操作ではありません。
しかしながら、ご提案ありがとうございました。

(あみな)様

コメントありがとうございます。

絞込みにはご(マナ)様が提案いただいたような機能でもいいかもしれませんが

その機能ですと検索したい項目が順を追っていかないと絞り込まれず

結局スクロールする範囲が広くなる可能性があると思うので…

なんていうか・・例えば会社名から検索したい場合は取引相手が300社を超える為ドロップダウンで
検索するのは適当ではないかなという気がしています。

でも、一度おっしゃるように実行してみます。

(momoe) 2021/09/30(木) 09:21


 マナさんのご提案を参考にさせて頂いて。とりあえず。汎用性ゼロ。
エラー処理も御座いません、もちろん、便利機能も無いです。。。^^;
自分だけで、こそっと、修正したり、確認したりしながら、使う個人用マクロ。( ̄▽ ̄)
シート Src に元情報
シート 情報 は空
シート 開始 に抽出条件
        A
 1   2021/10/1
 2   2021/12/31
 3   FALSE
 4   1

 A1〜A2 開始、終了の日付指定。A3がTrueの場合優先
以外はA4の数値が本日の月に加算された。日付の間で各、交換指定日
を検索みたいな感じです。結果は開始シートに、有れば、指定条件と
共に表示されます。[私が勝手に選択した項目だけ^^;]
いろいろ変更は可能なので、ご考察時の何かの足しにでも
ならなければ。。。ゴミ箱ポイお願いいたします。きっと、マナさん
の方が数段正確で、スーマートだとは思いますが。一案で。。。でわ
でわ。m(_ _)m

 Option Explicit
Sub zFilterProc()
    Dim wS1           As Worksheet
    Dim wS2           As Worksheet
    Dim mNum          As Long
    Dim v()           As Variant
    Dim r             As Range
    Dim rr            As Range
    Dim i             As Long
    Dim y             As Long
    Set wS1 = Worksheets("情報")
    Set wS2 = Worksheets("開始")
    zAddDAta
    With wS2
        .Activate
        mNum = .Range("A4").Value
        Set r = .UsedRange.Offset(, 1)
        Set rr = wS1.Cells(1).CurrentRegion
        r.Clear
        .Range("AA2:AJ2") = Array(rr.Rows(1).Cells(15), rr.Rows(1).Cells(15), _
                                rr.Rows(1).Cells(16), rr.Rows(1).Cells(16), _
                                rr.Rows(1).Cells(17), rr.Rows(1).Cells(17), _
                                rr.Rows(1).Cells(18), rr.Rows(1).Cells(18), _
                                rr.Rows(1).Cells(19), rr.Rows(1).Cells(19))
        .Range("AA3:AL7").NumberFormat = "@"
        ReDim v(1 To 15, 1 To 10)
        y = 1
        For i = 1 To 9 Step 2
            v(y, i) = ">=" & Date
            v(y, i + 1) = "<=" & Format(DateAdd("m", mNum, Date), "yyyy/mm/dd")
            If .Range("A3") = True Then
                v(y, i) = ">=" & .Range("A1").Value
                v(y, i + 1) = "<=" & .Range("A2").Value
            End If
                y = y + 1
        Next
        .Range("AA3").Resize(UBound(v, 1), UBound(v, 2)) = v
        rr.AdvancedFilter xlFilterCopy, .Cells(2, "AA").CurrentRegion, .Cells(1, 3)
        .UsedRange.Columns.AutoFit
        .Cells(1).Activate
    End With
    Erase v
End Sub
Private Sub zAddDAta()
    Dim i             As Long
    Dim vAr           As Variant
    Dim wS1           As Worksheet
    Dim wS2           As Worksheet
    Dim v()           As Variant
    Dim w()           As Variant
    Dim mD()          As Variant
    Dim x             As Long
    Dim n             As Long
    Dim r             As Range
    Dim rr            As Range
    mD = Array("管理NO", "機種名", "据付日", "[Mバッテリー交換日]", _
               "[Eバッテリー交換日]", "[REバッテリー交換日]", _
               "[TPバッテリー交換日]", "[オイル交換日]", "交換担当者")
    Set wS1 = Worksheets("情報")
    Set wS2 = Worksheets("Src")
    Set r = wS2.Cells(1).CurrentRegion
    ReDim v(1 To r.Rows.Count, 1 To 19)
    With wS1
        .UsedRange.Clear
        For Each vAr In mD
            x = Application.Match(vAr, r.Rows(1), 0)
            If Not IsError(x) Then
                Select Case True
                    Case x < 27 Or x > 36
                        n = .Cells(1, .Columns.Count).End(xlToLeft).Column + 1
                        n = IIf(n = 2 And .Cells(1, 1) = "", 1, n)
                        r.Columns(x).Copy .Columns(n)
                    Case x >= 27 And x < 37
                        n = .Cells(1, .Columns.Count).End(xlToLeft).Column + 1
                        n = IIf(n = 2 And .Cells(1, 1) = "", 1, n)
                        r.Columns(x).Copy .Columns(n)
                        n = n + 1
                        r.Columns(x + 1).Copy .Columns(n)
                End Select
            End If
        Next
        v = .Cells(1).CurrentRegion.Value
    End With
    ReDim w(1 To UBound(v, 1) - 1, 1 To 5)
    For i = 2 To UBound(v, 1)
        w(i - 1, 1) = DateAdd("yyyy", v(i, 5), v(i, 4))
        w(i - 1, 2) = DateAdd("yyyy", v(i, 7), v(i, 6))
        w(i - 1, 3) = DateAdd("yyyy", v(i, 9), v(i, 8))
        w(i - 1, 4) = DateAdd("yyyy", v(i, 11), v(i, 10))
        w(i - 1, 5) = DateAdd("yyyy", v(i, 13), v(i, 12))
        If i Mod 256 = 0 Then DoEvents
    Next
    With wS1
        .Cells(1, UBound(v, 2) + 1).Resize(, UBound(w, 2)) = Array("M", "E", "RE", "TP", "OIL")
        .Cells(2, UBound(v, 2) + 1).Resize(UBound(w, 1), UBound(w, 2)) = w
        .UsedRange.Columns.AutoFit
    End With
    Erase v, w, mD
End Sub
(隠居Z) 2021/09/30(木) 10:51

(隠居Z)様

ご提案ありがとうございます。助かります。
一度やってみます。
また、不明点あったら教えてください。

(momoe) 2021/09/30(木) 17:02


 ヒョコ |ૂ•ᴗ•⸝⸝)

 ↑やる事早い、2個上のスレの大先輩...お茶を ドーゾ(。•ᴗ-)_旦~
 でも、汎用性ゼロ。エラー処理も御座いません、もちろん、便利機能も無いらしいです?。。。(*´-ω・)ン?

  …まぁその、お試し版と言うことなのでしょう? ( サボったのか、晩酌しながら作成したのかは … 知りません。 )

 ∪ヽ(ゝε・´★)ノ彡☆ 酒持ってこーい

 (momoe)さんへ

 >なんていうか・・例えば会社名から検索したい場合は取引相手が300社を超える為ドロップダウンで
 検索するのは適当ではないかなという気がしています。
 >でも、一度おっしゃるように実行してみます。

 これは、余裕があればでいいですよ。300社もあると3連動させないといけませんから
 例 : 需要家名選択 → あかさなな行選択 → 企業名選択
 あいまい検索より、私は直接一発検索のが好みなだけですから

 それよりも先に、(もこな2)さんが教えてくれたカレンダーをご自身で設置出来るか試してください。
 そのカレンダーは、ユーザーフォームで作ってますから…それができると、もう少しだけ勉強すれば
 ユーザーフォームでリマインダー機能が作れます。そんなに難しくないですから( 初めてでも3~5時間あれば可能です )

 /// ユーザーフォームで作るリマインダー機能 お試し版 ////////////////////////

 ◆動作について

 ・エクセル起動で、最初の警告を表示する。
 ・時間設定で昼一、夕方に2回の警告を表示させます。朝だけで良い場合はコードをコメントアウトしてください。
 ・最初は、お試し版なので...確認5項目 [Mバッテリー交換日], [Eバッテリー交換日], [REバッテリー交換日], [TPバッテリー交換日], [オイル交換日]
 をカウントするだけです。
 ・抽出する期間は、自由に変更してください。尚、元データは使用せず、サンプル版を作成し
 きちんと動作( カウント )するか確認してください。…出来立てホヤホヤマクロなのでちょっとしか試していませんから

 ◆設置作業

 ・元データシートの、B1セルへ( 昼警告時間 ),C1セルへ( 夕方警告時間 )を入力してください。
 入力位置を変更する場合で解らない時は、質問してください。誰かが答えてくれます。

 ・ユーザーフォームを作成したらオブジェクト名を、Reminder_Function にしてください。
 ・ユーザーフォームに、( Label1~5 )を、5個配置する
  各Labelの Caption に 初期値でLabel1 等になってますので、削除して空白にしてください。
 間違っても、オブジェクト名を消さないようにしてください。

 ・コマンドボタン( CommandButton1 )を、1個配置する
 ユーザーフォームの大きさや、デザインなどは最初はきにしなくていいです。設置できればとりまOK
 ユーザーフォームを閉じるボタンになります。警告表示は、MsgBoxタイプなので右上の×ボタンを排除してあります。
 設置を忘れると、閉じれなくなるのでその時は、Ctrl + Alt + Delete してください。

 ・下記のコードを各モジュールに入れてください。
 ・シートを閉じて開くと最初の警告がでます。( きっとね (*ノ∀`*)ゞェヘヘ )

 ◆その後の作りこみ

 カウントが上手くいったら、次の作り込みです。

 ・オプションボタン ( レ点チェックと同じ意味 )を5個設置し、調べたい列( 各バッテリー交換日から )を選択すると抽出します。
 ・もう1個ボタンを設置します。2個目のボタンは、選択した各列の抽出する為のボタンです。
 …コードは現在は、勿論ありません。カウントまで作りこまないと作っても意味ありませんからね。
 カウントまでいったらきっとやさしい大先輩方の誰かが(隠居Z)さまのようなオートフィルター( AutoFilter )マクロを
 作ってくれると思います。( きっと ) あ、多分…きっと(○○Z)さまが?…想像にまかせます。(*ノ∀`*)

 '▼[ ThisWorkbook ] モジュール
 Option Explicit
 Private Sub Workbook_Open()
    Worksheets(1).Activate ' 元データをインデックス番号でシート指定する
    Call Reminder_Function.Show ' シートを開いた時のリマインダー機能
    Call Reminder_SetTimer ' その他の時間指定用( 13時とか、17時などと好きに変更する )
 End Sub

 '▼[ 標準 ] モジュール
 Option Explicit
 '----- Windows API宣言 -----
 #If VBA7 And Win64 Then
    '// 64bit版
    Public Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" _
        (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
    Public Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
        (ByVal Hwnd As LongPtr, ByVal nIndex As Long) As LongPtr
    Public Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
        (ByVal Hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
    Public Declare PtrSafe Function DrawMenuBar Lib "user32" (ByVal Hwnd As LongPtr) As LongPtr
 #Else
    '// 32bit版
    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
        (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
        (ByVal Hwnd As Long, ByVal nIndex As Long) As Long
    Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
        (ByVal Hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Public Declare Function DrawMenuBar Lib "user32" (ByVal Hwnd As Long) As Long
 #End If

 '----- Constant -----
 Public Const GWL_STYLE As Long = -16
 Public Const WS_SYSMENU As Long = &H80000

 Dim ws As Worksheet
 Sub Reminder_SetTimer()
    Dim i As Long
    Dim Set_Timer
    Set ws = Sheets(1)
    '▼指定シートのセルに時間をセットする( その他の時間指定 )
    For i = 1 To 2
        Set_Timer = Format(ws.Cells(1, i + 1).Value, "h:mm:ss")
        Application.OnTime TimeValue(Set_Timer), "Reminder" & (i)
    Next
 End Sub
 Sub Reminder1() '13時用
    Call Reminder_Function.Show
 End Sub
 Sub Reminder2() '17時用
    Call Reminder_Function.Show
 End Sub

 '▼[ UserForm ] モジュール / オブジェクト名 : Reminder_Function
 Option Explicit
 Private Sub CommandButton1_Click()
    For Each Reminder_Function In UserForms
        Unload Reminder_Function
    Next
 End Sub
 Sub UserForm_Initialize()

    '▼リマインダー機能( PC画面内の表示位置調整 )
    Me.StartUpPosition = 0
    Me.Top = 230
    Me.Left = 350

    Dim Hwnd As Long
    Dim lngWstyle As Long
    Hwnd = FindWindow(vbNullString, Me.Caption)
    lngWstyle = GetWindowLong(Hwnd, GWL_STYLE)
    SetWindowLong Hwnd, GWL_STYLE, lngWstyle And (Not WS_SYSMENU)
    DrawMenuBar Hwnd

    '▼リマインダー機能( 今日を基準に、バッテリー交換日より5日経過〜10日前迄の交換対象台数を確認する )
    Rem : 確認項目 [Mバッテリー交換日], [Eバッテリー交換日], [REバッテリー交換日], [TPバッテリー交換日], [オイル交換日]
    Dim i As Long
    Dim x As Long
    Dim MyCol As Long
    Const START_COL = 27&

    '▼カウント機能( 交換対象台数 )
    For i = 1 To 5
            With Sheets(1)
                    MyCol = START_COL + i * 2 - 2
                    x = WorksheetFunction.CountIfs(.Columns(MyCol), ">=" & Date - 5, .Columns(MyCol), "<=" & Date + 10)
                    If x > 0 = True Then Me.Controls("Label" & i).Caption = x & "台"
            End With
    Next i

 End Sub

(あみな) 2021/10/01(金) 18:50


 ↑ おはよ〜ございます。。。^^
お茶!ごちそうさまでしたぁ
×
きえてましたよ ^^;...。。。(^◇^)v
別案です

https://www.moug.net/tech/exvba/0090003.html
(隠居Z) 2021/10/02(土) 10:09


(隠居z)さま〜 おはようございます。

×ボタンは、MsgBox風にしたかったから...消したいんです。(・∀・)
不具合あるかな? それともおかしいですかね?
(あみな) 2021/10/02(土) 12:04


 いえ!^^;
決してそのような意味では。。。
わたし、APIも苦手なので、←意味があまり解ってない^^;
また、教えて頂けると
嬉しいです。m(__)mm(__)mm(__)m
(隠居Z) 2021/10/02(土) 12:44

 (隠居Z)さま に私が教える事など (ヾノ・∀・`)ナイナイです。

 ここには詳しそうな大先輩がいっぱいいますからね。

 本題へ( 今回の件だけ )

 昼間は仕事中で、詳しく書けなかったので今から...10,000行分話します。(_ _。)←←←←←←←←←←←← 嘘です。 

 確かに、警告表示に、OKボタンだけなら (隠居Z)さまもイメージが湧くのかな?
 オプションボタン設置したり、抽出ボタンも付けるのはちょっと可笑しいかもですね。
 ただ、(momoe)さんの要望の中に...リマインダー機能を使って、抽出出来る事が第一で
 とあったのでこの方法か、ユーザーフォームを呼び出すかと検討したのですが、 
 お試し版なので一旦これでいこかって感じです。

 ×ボタンを排除しちゃうイメージは、ログインフォームの方がイメージしやすいかもです。
 パスワード入力間違えると、MsgBoxだとログインフォームの大きさと違っちゃうので変だけど、
 パスワード違うよ〜警告を、ユーザーフォームで大きさ揃えたらかっこよくないでちゅかね?きにしないでちゅかね?^^;

 そんな使い方で×ボタンを排除は、重宝する部分ですかね?

(あみな) 2021/10/02(土) 19:40


隠居Z、あみなの場所ではないぞ。
名無し
() 2021/10/02(土) 20:18

 存じ上げております。
(momoeさん) 2021/09/30(木) 17:02
のご返信待ちの間
momoeさんの、ご質問に関して、意見交換をしているつもりです。
貴君に呼び捨てされるいわれは御座いません。
m(_ _)m
(隠居Z) 2021/10/02(土) 20:27

  ヒョコ |ૂ•ᴗ•⸝⸝)

(momoe)さんへ

 交換日更新プログラムを作成しました。
 (うるう年非対応 )ですが、いいですかね?

 1日とか多少はいいですよね?

 (隠居Z)さま〜 お願いがあります。 (*-ω人)

 イベントマクロ得意ですか?ちょっと下記で良いか、暇な時にでも見てください。
 ご教授くださいませ。

 '▼[ Sheet ] モジュール
 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    Dim i As Long
    Dim Re As Range
    Dim Rn As Range
    Dim Exchange_Date As Range
    Dim RetMsg As VbMsgBoxResult
    Set Re = ActiveCell                ' 選択セル
    Set Rn = ActiveCell.Next           ' 耐用年数
    Set Exchange_Date = Range("AA4:AA1048576")

    For i = 1 To 5 ' 範囲設定 (AA列,AC列,AE列,AG列,AI列 )
            Set Exchange_Date = Union(Exchange_Date, Range("AA4:AA1048576").Offset(, 2 * i - 2))
    Next i
    If Intersect(Target, Exchange_Date) Is Nothing Then Exit Sub
            Cancel = True ' アクティブを解除
    '▼アクティブセルをダブルクリックで日付けを更新する(うるう年非対応 )
    If Intersect(Target, Exchange_Date) <> "" And IsDate(Re) = True Then
            Application.EnableEvents = False        ' イベント停止( 無限ループ回避 )
            With Target
                    .Value = Re + Rn * 365          ' 日付更新
                    .NumberFormat = "yyyy/m/d"      ' 形式表示選択 西暦 / 型
                    .Font.ColorIndex = 5            ' 交換完了確認表示 青
            End With
            Set Exchange_Date = Nothing             ' 参照範囲解除
            Application.EnableEvents = True         ' イベント有効
            Else
            RetMsg = MsgBox(" 日付ではありません 「 交換日 」を更新できません", _
                              vbOKOnly + vbExclamation, Title:="INFOMATION")
    End If
 End Sub

 では、おやすみなさい。(P∀`q。)

(あみな) 2021/10/03(日) 22:24


 >>イベントマクロ得意ですか?
かなり苦手ですが。私も拝見させて戴きます。
仮にもし、違ってても、きっと、他の回答者様たちが教えて下さいますよ。
また、叱られソぉなので。。。、^^;でわ。また。失礼致します。
お休みなさいませ。zzzz
m(_ _)m
(隠居Z) 2021/10/03(日) 22:40

 >>また、他の方々と共有するなら、尚更ご自身で作るほうがいいように思えるのですが。
 >>若しくは、ご自身で業者に発注するのも手ですね。
 >まぁそれも手ですね
 >でもそれではこのサイトで質問して詳しい方が助言をしてくださるという機能が果たされませんね^^;

 十分な助言だと思いますが。
 それとも、ここは質問者さんのやりたい事を、忖度して無償でVBAの作成代行をしてくれるサイトということでしょうか。
 もしくは暗に私に回答者足りえないと仰っているのでしょうか。

 確認事項
 そもそも、データはcsvファイルということでよろしいでしょうか。
 それとも、csvファイルのデータをどこかのブックに保存して運用しているのでしょうか。

 csvファイルをExcelで開いているだけなのであれば、アプローチが変わってくると思いますが。

(tkit) 2021/10/04(月) 16:27


(あみな)様
(隠居Z)様

ご提案ありがとうございます。
返信遅くなり大変申し訳ございません。
ご指摘の通り、(もこな2)様に教えていただきました、カレンダーの設定実行してみました。
出来ました。
あみな様からのご提案いただいた内容も私の知識不足があり、言葉の意味や操作方法について他にも調べてみて
https://www.sejuku.net/blog/37407
も一つ一つ実施してみました。
ユーザーフォームでツールBOXから設定してみる方法もなんとか理解しました。

これから、実際に=お試し版=を実施してみようと思っています。
理解が遅くてスイマセン。
1つ質問ですが、
◆設定作業 の
・ユーザーフォームを作成したらオブジェクト名を、Reminder_Function にしてください。
・ユーザーフォームに、( Label1~5 )を、5個配置する
とされていますが、
ユーザーフォームにツールボックスからラベルをドラッグにて設定するという事でよろしいですよね。

週末にじっくり試してみますので、また不明点質問させてください。
何卒宜しくお願いします。

(momoe) 2021/10/08(金) 17:11


スルーされましたが、確認の真意を。

既に御社システムのCSVデータを基に台帳的なブックで管理されているのですね。
御社システム内で交換日や更新日を管理されているのであれば、
台帳管理とシステムで2重管理になっていますよね?

2重管理では、ヒューマンエラー発生の温床となってしまいます。
何らかで更新しなかった場合、更新済みの顧客へまた交換連絡なんてしたら、
問題ですよね?

管理はシステム側に限定して、質問者さんの作るツールで
任意の期日のレコードを抽出する形に留めたほうがいいのではと
思った次第です。

あくまでデータは齟齬の無いシステムのデータの
CSVを読み込んで、そのデータから抽出するわけです。

忖度してコメントしていますので、違ったらスルーしてください。

(tkit) 2021/10/08(金) 18:55


 ヒョコ |ૂ•ᴗ•⸝⸝) (momoe)さんへ							

 >台帳管理とシステムで2重管理になっていますよね?(tkit)							

 (tkit)さんの質問は、皆が確認しておきたい情報です。							
 かなりの重要な部分ですよ。貴社の業務フロー( 流れ ) の部分は、話せないとこもあるかもしれませんが							
 本来は、こちらが質問する前に(momoe)さんから簡単で良いので説明がなされるのが普通です。							

 以前に、(momoe)さんより下記の回答をしていただいていますが、少し不十分かと思います。							

 > ⓜ弊社のシステムで基台マスターが存在します。							
 その基台マスターをCSVデータとして排出したデータがあります (momoe)							

 ※では、どんな情報が欲しいかですが(私も質問のタイミングを逃していたものです)							

 ・作業者の指示、請求する為の伝票管理などの有無、貴社の、本社,支社などの有無など							
 ・又、バッテリー交換日の進捗管理表などの有無、交換完了後は作業者が次回の交換日を							
   更新するのか、それに対してダブルチェックの有無はするのかなどです。							
   …まだ他にあったような気がしてますが、思い出せません。近く纏めてアゲマス							

 >ユーザーフォームにツールボックスからラベルをドラッグにて設定するという事でよろしいですよね。							

 下記のURLを参考にしてください。							
 アイコンをクリックした後でフォーム上でマウスをドラッグしてラベルを作成します。							
 https://www.officepro.jp/excelvbaform/form_label/index1.html							

 ◆リマインダー機能の完成予定フォームです。ダウンロードURLから閲覧可能です。							

 私が、「 ファイルなう 」と言うサイトへ… アップロードしたファイルです。リマインダー機能.JPG (140 KB)							
 Windowsフォトビューアーで画像だけが閲覧可能です。ちなみにですが、まだここまで作る必要はありません。							

 ダウンロードURL:							
 https://d.kuku.lu/cb468aacf

 「 ファイルなう 」運営者情報		
 くくさま @kukusama 		
 https://twitter.com/kukusama

(あみな) 2021/10/09(土) 10:22


(tkit)様
(あみな)様

コメントありがとうございます。

 >台帳管理とシステムで2重管理になっていますよね?(tkit)
 >(tkit)さんの質問は、皆が確認しておきたい情報です。							
 かなりの重要な部分ですよ。貴社の業務フロー( 流れ ) の部分は、話せないとこもあるかもしれませんが							
 本来は、こちらが質問する前に(momoe)さんから簡単で良いので説明がなされるのが普通です。	

非常識でしたね。大変申し訳ございません。
私の伝え方に問題があったと思いますが、基台マスターは存在しますが、エクセルのように全てを閲覧できるものではなく、機種1台 対 1管理NO となっていて、
マスター画面は1台づつ画面を開けて確認しないといけないので、マスター画面で正直管理が出来ない為、CSVに掃きだして管理できたらという希望でした。
例えば、実際にお客様へ訪問し、Mバッテリーを交換した場合、実施報告書が作成され(管理NOは記載必須)、請求処理完了となると、各機種の基台マスターへ
交換した日が上書きされる仕組みとなっています。
ですので、次回の交換日を確認したいとなると、いちいちマスター画面に知りたい機種の管理NOを打ち込んで、中身を確認するという作業が必要となるのです。
それが、1御会社が機械を10台保有していても、100台保有していても同じ作業が必要で、お客様より『当社の機械すべての交換必要機種の提案をして欲しい』
という事があると、同じことを保有台数分行わないといけないので、そいうった手間を省きたいという要望に応えたいと思っているのです。

>・作業者の指示、請求する為の伝票管理などの有無、貴社の、本社,支社などの有無など
伝票管理の有無…請求関係については、管理必要ありません。
本社、支社などの有無…これについては4拠点あります。

> ・又、バッテリー交換日の進捗管理表などの有無、交換完了後は作業者が次回の交換日を

   更新するのか、それに対してダブルチェックの有無はするのかなどです。	
バッテリー交換日の進捗管理表などの有無…進捗管理表はあるません。
交換完了後は、先程ご説明した通り、実施報告書を作成し、システムに打ち込むことで、交換実施日が基台マスターへ自動反映されます。次回交換実施日については『交換実施日』の隣に
耐用年数が設定されていて、交換実施した2年後なり、4年後なりを自分で判断するのみとなっています。

◆リマインダー機能の完成予定フォームです。ダウンロードURLから閲覧可能です。
ありがとうございます。
拝見させていただきます。

(momoe) 2021/10/11(月) 10:48


(あみな)様

早速ダウンロードしてみました。
>◆リマインダー機能の完成予定フォームです。ダウンロードURLから閲覧可能です
すごいです…条件付き書式も利用して、色が変わっている事と、管理したい5項目の対象台数が
表示されるという事ですね…そこまで想像できていませんでした。
とにかくすごいという事と、理解したい気持ちになりました。

以前ご提案いただいた↓について実施してみました

/// ユーザーフォームで作るリマインダー機能 お試し版 ////////////////////////

 ◆設置作業
 ・元データシートの、B1セルへ( 昼警告時間 ),C1セルへ( 夕方警告時間 )を入力してください。
 入力位置を変更する場合で解らない時は、質問してください。誰かが答えてくれます。
 ・ユーザーフォームを作成したらオブジェクト名を、Reminder_Function にしてください。
 ・ユーザーフォームに、( Label1~5 )を、5個配置する
  各Labelの Caption に 初期値でLabel1 等になってますので、削除して空白にしてください。
 間違っても、オブジェクト名を消さないようにしてください。
 ・コマンドボタン( CommandButton1 )を、1個配置する

までは出来ました。
次に、
・下記のコードを各モジュールに入れてください。
とありますが、

>'▼[ ThisWorkbook ] モジュール
からしたのコードですかね
コピペしてみたのですが、標準モジュールでコンパイルエラーとなりました。
'▼リマインダー機能( PC画面内の表示位置調整 )

    Me.StartUpPosition = 0
で、Meがキーワードの使用方法が不正です

とポップアップが出ました

標準モジュールとは
メニューから「挿入」>「標準モジュール」でいいのですよね?

(momoe) 2021/10/11(月) 12:54


 私からの案はCSVを基に任意の機種データを抽出、マクロブックに貼り付けです。

 システムからデータをCSVでエクスポートする。(手動を想定)
 ツールで以下を行う。
 ・CSVを読み出し、2次元配列にする。
 ・テーブルに貼り付けて、現行作成しているコードを流用するか、
   配列上で日付を判定し、該当データを抽出して貼り付ける。
 ・CSVのファイル情報から作成日を取得し、****/**/** **:**現在と貼り付け
 ・ツールは保存不可とし、あくまで任意の期日に当てはまるデータ観閲用とする。

 CSVの文字コードが分からないですが、Shift-Jis版で読み込み配列化のコードを
 提示しておきます。
 エラートラップはしていません。

 Function Get_2DArrayOfShift_JisCSVFile(ByVal csvPath As String) As String()
     Dim buf As String
     Dim src() As String
     src = Split("")     '配列の要素を-1にする

     Open csvPath For Input As #1
         Do Until EOF(1)
             Line Input #1, buf
             ReDim Preserve src(UBound(src))
             src(UBound(src)) = buf
         Loop
     Close #1

     Dim temp() As String
     Dim data() As String
     Dim x As Long
     Dim y As Long
     If UBound(src) > -1 Then
         ReDim temp(UBound(src), UBound(Split(src(0), ",")))
         For y = LBound(src) To UBound(src)
             data = Split(src(y), ",")
             For x = LBound(data) To UBound(data)
                 temp(y, x) = data(x)
             Next x
         Next y
     Else
         temp = src
     End If
     Erase src
     Get_2DArrayOfShift_JisCSVFile = temp
 End Function

(tkit) 2021/10/11(月) 13:22


 Me でエラーです?

 あ〜多分、標準モジュールへユーザーフォーム用のコードも
 同じ所に貼り付けてませんかね?

  ここから下と
 '▼[ 標準 ] モジュール

  ここから下は貼るとこ違いますよ。
 '▼[ UserForm ] モジュール / オブジェクト名 : Reminder_Function

(あみな) 2021/10/11(月) 13:35


 因みに

 '▼[ ThisWorkbook ] モジュールへは、これだけです。
 Option Explicit
 Private Sub Workbook_Open()
    Worksheets(1).Activate ' 元データをインデックス番号でシート指定する
    Call Reminder_Function.Show ' シートを開いた時のリマインダー機能
    Call Reminder_SetTimer ' その他の時間指定用( 13時とか、17時などと好きに変更する )
 End Sub
(あみな) 2021/10/11(月) 13:39

 貴社の業務フロー( 流れ )の件、ありがとうございました。													
 (σ・∀・。) えっと、5回位 読んだんだけど、アンポんだから… 6割位しかわかんな〜いww													

 > バッテリー交換日の進捗管理表などの有無…進捗管理表はあるません。													

 (。-`ω-) .。oO( ウーン悩む …と言うことは、もしかして基台マスター( システム )が、交換日が													
 決まって...期日が近くなった場合に、自動でプリントアウトしてくれるとかですか?													
 それか〜 本社からメールか、FAXや郵送などで...お仕事しなさいよって送ってくるとかですか?													
 それか、お客様へ訪問( TEL )して打ち合わせ兼て、交換日を相談して決定するとかですか?													

 [ その他の質問です。 ]													

 1. 実施報告書って紙ベースではないですよね? システムの登録画面ですよね?													
 2. 管理NOについてですが、これは連番になってますか?													
 ( 連番とは、昇順、降順に並び替えれる要素があることです。)													

 3. また管理No.は、半角英数字で何文字位になりますでしょうか?													
 4. 下記のような進捗管理票( 月別 )があると便利なのでしょうか?													
 ※カレンダーの月を変更すると曜日と(土・日曜日)の色が変更される													
 シフト表作成でよく利用されるタイプです。													

 ダウンロードURL:進捗管理表.JPG (131 KB)													
 https://d.kuku.lu/fb8e68dd8													

 (_ _*) 質問多くて… ゴメンネ													

 [ 別件回答です。 ]

 >◆リマインダー機能の完成予定フォームです。ダウンロードURLから閲覧可能です													
 すごいです…条件付き書式も利用して、色が変わっている事と、管理したい5項目の対象台数が													
 表示されるという事ですね…そこまで想像できていませんでした。													

 条件付き書式までマクロでしてませんよ^^; Excel 通常機能(条件付き書式)で設定した													
 方が早いですから。カウントするだけです。と補足ですが、13時、17時などの時刻の													
 セットは、エクセルを起動した時に決定されます。閉じると自動解除となります。													
 ※13時、17時にセットした時間は、マクロでキャンセル処理もできますがしてません。                                                   ……………………………………サボりました。													

(あみな) 2021/10/12(火) 08:14


(あみな)様

コメントありがとうございます。

>もしかして基台マスター( システム )が、交換日が
>決まって...期日が近くなった場合に、自動でプリントアウトしてくれるとかですか?

いえ…お客様からのご依頼によって交換を実施しているに過ぎなくて、当社からのご提案というのが
出来ないに等しいのです。
(基台マスターの意味が無いというか…)
もしくは、別の案件でお客様へ訪問した際に、機械に貼ってある交換日を目視で確認し、
次回の交換をご提案するという状況です。

>それか、お客様へ訪問( TEL )して打ち合わせ兼て、交換日を相談して決定>するとかですか?
まさにそうです。

>[ その他の質問です。 ]
> 1. 実施報告書って紙ベースではないですよね? システムの登録画面ですよね?
はい。システムの実施報告書という画面で必要事項登録することになっています。

> 2. 管理NOについてですが、これは連番になってますか?
>( 連番とは、昇順、降順に並び替えれる要素があることです。)
はい。一応連番で登録してあります。しかしながら、お客様保有機種で、もうすでに使用していない、
とか、廃棄してしまった機械については、基台マスターは無効となっていますので、
当初連番だったはずが、削除されている番号も存在します。

> 3. また管理No.は、半角英数字で何文字位になりますでしょうか?
半角英数字で、4桁〜8桁まであります

> 4. 下記のような進捗管理票( 月別 )があると便利なのでしょうか?
> ※カレンダーの月を変更すると曜日と(土・日曜日)の色が変更される
> シフト表作成でよく利用されるタイプです。
はい。こういった資料もとっても便利です。
このようなカレンダーから、各拠点の管轄に絞り込めたら大変助かります。

>条件付き書式までマクロでしてませんよ^^; Excel 通常機能(条件付き書式)で設定した
>方が早いですから。カウントするだけです。
条件付き書式での設定と、5項目の該当台数をカウントするマクロになっているという事ですね。
抽出となっているのは、絞込みのことですか?

(momoe) 2021/10/12(火) 11:39


 (σ・∀・)σ だんだん見えてきましたよ!!											

 交換日が確定したら、ホワイトボード( 月間用 )が大活躍っぽいですね。( 想像 )											
 ところで[ リマインダー機能 ]は、設置してカウントできましたか?ちょっと心配中w											

 > このようなカレンダーから、各拠点の管轄に絞り込めたら大変助かります。											

 ( momoe )さんは、本社の方っぽいですね。特に回答する必要性はないです。											
 各拠点の管轄に絞り込みは たいして難しいことではないと大先輩方は言っております。( 想像 )											
 でもするなら最後ですね。											

 > 条件付き書式での設定と、5項目の該当台数をカウントするマクロになっているという事ですね。											
 > 抽出となっているのは、絞込みのことですか?											

 以前アップした画像は、サンプルなので特に抽出や絞込は気にしてしておりません。											
 条件付き書式までマクロでしてないですが、条件付き書式での設定はしてあります。											
 5項目の該当台数をカウントは、日付けから拾ってしてあります。。											
↓											
 カウントがきちんとされたら、抽出か絞込をマクロでさせます。勿論両方をいっぺんにもできます。											
 抽出か絞込のマクロ作成( ここ担当は、私ではありませんから。) やれと言うならしますが											

 私だと時間がそんな取れないから時間かかります。大先輩方は、( momoe )さんの要望に											
 応えれるだけのマクロのデパートリーを多くもってますから、( AutoFilter )系は「年季の入った」											
 大先輩方にしてもらう方が良いと思いますです。											

 と、( AutoFilter )のマクロは、誰か一人にしていただいた方がよいです。変数の使い方やコードの											
 書き方も、バラバラだと( momoe )さんが「後でメンテナンス」する時に苦労します。											

 〈 抽出と絞込の認識あわせについて 〉											

 ・ フィルターを掛けっ放しにはしない派ですか?それともどちらでもいいのですか?											
 作業者が好きな列を抽出できるので、私個人的にはフィルターを掛けっ放しのが良いかなと											
 思うのですが、でマクロで絞込&抽出は、良く利用する10列程に留めるです。											
 …でもこれは好き嫌いが分かれますね。どちらにするかは今からしっかり検討をしましょう。											

 ・ 以前に( momoe )さんのおっしゃってた別のシートのセルに検索対象を入力する件ですが、											
↓											
> 例えばA1セルに管理番号(A列)を入力し、A2セルに機種名を入れて、需要家名(B列)の検索というのもA3セルに入力し、											
> 出来れば、6.7.8については、文字数5文字くらいまで入力し、あいまい検索が可能だと更にありがたいです。											

 この方法も時と場合によっては有なのですが、ユーザーフォームを( momoe )さんが設置できそうなので											
 別の方法を検討されるのも良いかと思います。シートの移動を極力減らして、入力するのは											
 ユーザーフォームのテキストボックス...一か所の方が、作業者も解りやすくないでしょうか?

 ・勿論、需要家名を田んぼの( 田 )であいまい検索、担当者を、伊藤の( 伊 )であいまい検索、とダブルで検索を掛けることもできます。

 ・後、リストを作成するかもいろいろ検討しましょう。
 この辺は、(隠居Z)さまとか良い方法を熟知してると思うので相談してくださいな。									

 ・下記の例は、URL:ダウンロードはたたき台です。											
 ( メインのデータ画面( 元データ )と、抽出用ユーザーフォーム( 真ん中の))、表示左下のは、話の”ねた"											

 バッテリー交換元データ画面サンプル&ユーザーフォームたたき台.JPG (174 KB)											
 ダウンロードURL: https://d.kuku.lu/1d5c8bac2											

 〈 ダウンロードのたたき台について 〉											

 ・このたたき台画像を貼っておけば、ユーザーフォームの話ができると思います。											
 ここの大先輩方は、この複数の画像を見れば、何をどうする?って話が全員できます。											
 レイアウトも、てきとーに配置しただけですから今後の話し合いの” ねた ”です。											

 ・ユーザーフォームの大きさは、出来ればリマインダーの大きさと一緒にしとくと											
  表示位置が同じに設定すれば、重なっても綺麗かもです。

 ・メインのデータ画面( 元データ )について											

 これは私の好きな方法ですが、3行分を見出しにして...3行目を表示のウインドウ枠を固定するやり方です。											
 画像のテキストボックス( 右下の大きい白い枠 )に、管理Noを( 半角英数字で、4桁〜8桁 )を											
 例:0013000 と入力すると、マクロで画面をスクロールさせて..仮に13000行目でも...対象の行を、4行目に1行だけ											
 表示させます。したら、交換日の入力まで15秒ほどで出来ると思います。コードはいつでも提供できます。											

 また、▲ボタンを押すと、最上段が一番上に来るようにマクロでします。( 必要ならばです )											

 ・ フィルターを掛けっ放しにしても、マクロでフィルター解除も一発で複数できますし、											
 メインのデータ画面から移動したくないことないですか? 											
 抽出したデータの確認は印刷をする時に確認するだけにしないのかな?											

 ※上記の件は、( AutoFilter )のマクロを作っていただける方と相談してください。											

 ・カレンダーはなぜカスタマイズしたかと言いますと、大きかったのと、もし真ん中の表示のように											
 ユーザーフォームを作成して、各種の検索( 抽出 )をするならですが、期間抽出が必要な時に											
 左上のピンクの部分をマウスが通過すると、カレンダーが右下の位置に表示されるようにします。											
 欲しい時だけ表示するのです。( ボタンは可能な限り使用しません。 )											

 で、管理Noを入力して一発で抽出する時は、カレンダーは必要がないので表示しないようにします。											
 まあ、こうするなら詳しい話はまた今度にでも											

 ・ユーザーフォームを利用すればですが、各シートに操作ボタンを1個も配置しなくて良いので											
 テーブルの見栄えも良いし、できるだけそうありたいと私は考えています。											

 ( *'ω'*)و ちょっと長いけど、一気にいきますね。											

 (tkit)さんの提案していただいた方法も有力な方法ですが、( momoe )さんは検討を											
 されましたでしょうか?											

 基台マスターの、○○.csv から直接、抽出期間を決めてデータを取得する方法かと											
 思います。交換日や更新日の2重管理を回避するってことだと思いますです。											

 今までは、基台マスターの、○○.csv から( momoe )さんも手動でされてきたのかな?											
 マクロで13000行を取り出したかのどちらかだと思いますが											

 ○○.csvデータからの読み込みは、私も手動でやるか、Power Query でごく稀にするだけなので											
 詳しいことは良く解りません。											

 作業者が、マクロで簡単に基台マスターの、○○.csv からできるのかどうかだと思います。											
 取りたい情報が各種あるとどうなのでしょうか?詳しいことは大先輩方と相談してください。											

 と、それと[ リマインダー機能 ]の件ですが、これがメインってのは止めたほうが											
 いいような気がします。毎月の中旬には、次月の交換日一覧データを取得して											
 保険的な補助という意識が最良かと思います。											

 基台マスターの、○○.csv から全データを取得は避けられないと言うのなら											
 両方を確認用として、使用するってのもいい方法なのかな?と思います。											

 〈 ここから余談:以前に返信しようと思ってたでちゅ 〉											

 >私は少なからず、チャレンジしてみようと思っていますが、											
 >これは、どこかに通って習得しなさいということでしょうか。											

 私も、ネット情報のみで勉強してますね。											
 漫画の本を一冊、サラ〜と読んだくらいですね。											

 でも独学ですると知識が偏るってみんな言いますね。											
 たまには、補強で書籍も読んでみた方がいいと思ってます。											

 (momoe)さんの場合だと、事務で使うような短いマクロを											
 ( 3行マクロ的なやつです )いろいろ探して動かすのが良い気がします。											
 とは言え、はっきり言ってマクロの意味さえ解ればよいのです。											
 塾の先生になるのではないので、コードをスラスラ書けるようになんて必要ないです。											

 ・後は、基本的な変数の使い方と基本構文ですかね?											
 勉強法は自由ですが、Youtubeの短時間の動画(10分〜20分位)毎日見てるだけでも											
 1年間継続したら、かなりの知識はついて来ますよ。											

 ・今、丁度ユーザーフォームに関する知識が欲しいかなと?思いますので											
 下記の動画シリーズでも見ると良いかもです。											

 ◆【VBA】UserForm 完全解説「UserFormとは何か」基本が分からなければ何もできない											
 Office TANAKA 田中 亮											
 https://www.youtube.com/watch?v=62vdzRK6eKo											

 ◆ VBAユーザーフォーム入門?Eオプションボタンを使おう!											
 マクロちゃんねる											
 https://www.youtube.com/watch?v=HjXvrAfcLOk											

 (隠居Z)さまとか...熟練者に勉強法を聞くと、もっと良いポイントを教えてくれますよ。( きっとな )
(あみな) 2021/10/13(水) 13:56

 momoe さん、あみな先生。。。(^◇^)v
 ご無沙汰いたしております。
>>(隠居Z)さまとか...熟練者に
↑隠居zは、ぼけ老人のエクセル新米ですので。。。他のご回答者様、
若しくは、あみな先生にご代行賜れば

 とても幸せです。(@_@;)。。。(. ~ .)...(#^ ^#)さっさっさ〜m(__)m///
でわまたの機会に。。。<< _ _ >>←本当は前の事はみんな忘れて
しまっていて。何をさせて頂いたら良いか解らなくなっています。お許しを
気迫が。。。希薄に。。。。(T_T)
m(__)m
(隠居Z) 2021/10/13(水) 14:43

 ( momoe )さんへ

 (隠居Z)さまは、温泉行って…美味しいもの食べたら何するか、忘れてしまったようです。
 確かに、( momoe )さんのペースだと...カレンダー設置でも1週間後に返信だとこれ全部
 制作するのに年内に終わるかどうか…

 だからと言って、アワテナクテモ( momoe )さんはいいですから、確実に進めますよ。
 ちょ〜い…私が組み込み考えるの?( p_q)

(あみな) 2021/10/13(水) 16:52


前提として、
・多数の人が操作する。
・Excelのフィルタ操作が出来ない程度にExcelに疎い人がその中にいる。
・誰でも簡単に操作して、任意のデータが抽出できる台帳を作成したい。
ですよね。

Excelに疎い人が操作する訳で、そのような運用状態で台帳の中身を正しい状態で
維持できるとは思えないです。
誤操作で書き換えられることを十分想定されて、対策することをおススメします。

私の案には興味ないようですので、これで降ります。
(tkit) 2021/10/13(水) 17:00


(あみな)様

体調不良で寝込んでおりました…お返事遅くなりまして申し訳ございません。
まず、
>ところで[ リマインダー機能 ]は、設置してカウントできましたか?ちょっと心配中w
について…ご察しの通り、なんとか機能を理解したところです。
https://blog-tips.sekenkodqx.jp/2019/05/07/excel-reminder00001/
見たりしました。
そもそも、エクセルのバージョンが2010であったため、DAYS関数がなく#NAMEで手こずりましたが^^;
一度通してやってみようと思い理解しました。

 >・ フィルターを掛けっ放しにはしない派ですか?それともどちらでもいいのですか?											
どちらでもいい派です。

>作業者が好きな列を抽出できるので、私個人的にはフィルターを掛けっ放しのが良いかなと

 思うのですが、でマクロで絞込&抽出は、良く利用する10列程に留めるです。											
 …でもこれは好き嫌いが分かれますね。どちらにするかは今からしっかり検討をしましょう。											
はい。

この後も回答しなけれまなりませんが、今日は一旦終了しなければならない為、また明日以降に
コメント残します。
申し訳ございません。
何卒宜しくお願いいたします。

(momoe) 2021/10/19(火) 17:49


(あみな)様

ダウンロードのたたき台について
拝見させていただきました。
これは、リマインダー機能を設定したあとで、
ユーザーフォームを設定するという方法でしょうか。

>これは私の好きな方法ですが、3行分を見出しにして...3行目を表示のウインドウ枠を固定するやり方です。
>画像のテキストボックス( 右下の大きい白い枠 )に、管理Noを( 半角英数字で、4桁〜8桁 )を
>例:0013000 と入力すると、マクロで画面をスクロールさせて..仮に13000行目でも...対象の行を、4行目に1行だけ
>表示させます。したら、交換日の入力まで15秒ほどで出来ると思います。コードはいつでも提供できます。
おっしゃっていることは、想像できました。
(右下の大きい白い枠)というのは、[入力]というところですよね?
ここは、管理NOのみでしょうか。
左の枠の、ピンクとオレンジの選択部分は、特にあいまい検索については、どこに入力が可能なのでしょうか?

>また、▲ボタンを押すと、最上段が一番上に来るようにマクロでします。( 必要ならばです )
元データの1行目ということでしょうか。

カレンダーのカスタマイズの件は、おっしゃる通りですね。
ユーザーフォームにカレンダーを設定することも出来ますか?
https://www.sejuku.net/blog/37407
↑ココにカレンダーの使い方がありましたが、この方法は『業務管理システムメニュー画面』の
抽出期間に使えるのでしょうか。
もこなさんに教えていただいたカレンダーをカスタマイズしたものと同じように、
期間抽出が必要な時に、左上のピンクの部分をマウスが通過すると、カレンダーが右下の位置に表示されるようにします。

 欲しい時だけ表示するのです。( ボタンは可能な限り使用しません。 )	
と同じような表示方法にすることが可能なのでしょうか。

現時点ではリマインダー機能の理解で、正直止まってしまっていて、私の知識がついていけていない状態です。
とっても効果的なご提案をしてくださっているのに、情けないですが、いろいろ調べながら
返信をしている次元です。
https://blog-tips.sekenkodqx.jp/2019/05/07/excel-reminder00001/
についても、再度やってみたところ、正常に機能しなくて、手が止まってしまいました…。

(momoe) 2021/10/25(月) 16:27


 >ダウンロードのたたき台について												
 >拝見させていただきました。												
 >これは、リマインダー機能を設定したあとで、												
 >ユーザーフォームを設定するという方法でしょうか。												

 ꒰ ՞•ﻌ•՞ ꒱ ちゃうちゃう犬を、5匹プレゼントしますw ←ちょっと羊と同じに見えるがw												

 リマインダーは、リマインダーの抽出期間だけに対応させるユーザーフォームです。												
 サンプル画像 : https://d.kuku.lu/cb468aacf												
 ↓												
 ーーーー 前回の記事( その後の作りこみをちゃんと読んで ) ーー−−−−−−−−−−−−−												

  /// ユーザーフォームで作るリマインダー機能 お試し版 ////////////////////////												

  ◆動作について												

  ・エクセル起動で、最初の警告を表示する。												
  ・時間設定で昼一、夕方に2回の警告を表示させます。朝だけで良い場合はコードをコメントアウトし てください。												
  ・最初は、お試し版なので...確認5項目 [Mバッテリー交換日], [Eバッテリー交換日], [REバッテリー交換日], [TP 
 バッテリー交換日], [オイル交換日]												
 をカウントするだけです。												
  ・抽出する期間は、自由に変更してください。尚、元データは使用せず、サンプル版を作成し												
  きちんと動作( カウント )するか確認してください。…出来立てホヤホヤマクロなのでちょっとしか試 していませんから												

  ◆設置作業												

  ・元データシートの、B1セルへ( 昼警告時間 ),C1セルへ( 夕方警告時間 )を入力してください。												
  入力位置を変更する場合で解らない時は、質問してください。誰かが答えてくれます。												

  ・ユーザーフォームを作成したらオブジェクト名を、Reminder_Function にしてください。												
  ・ユーザーフォームに、( Label1~5 )を、5個配置する												
  各Labelの Caption に 初期値でLabel1 等になってますので、削除して空白にしてください。												
  間違っても、オブジェクト名を消さないようにしてください。												

 ・コマンドボタン( CommandButton1 )を、1個配置する												
  ユーザーフォームの大きさや、デザインなどは最初はきにしなくていいです。設置できればとりまOK												
  ユーザーフォームを閉じるボタンになります。警告表示は、MsgBoxタイプなので右上の×ボタンを排除 してあります。												
  設置を忘れると、閉じれなくなるのでその時は、Ctrl + Alt + Delete してください。												

  ・下記のコードを各モジュールに入れてください。												
  ・シートを閉じて開くと最初の警告がでます。( きっとね (*ノ∀`*)ゞェヘヘ )												

  ◆その後の作りこみ												

  カウントが上手くいったら、次の作り込みです。												

  ・オプションボタン ( レ点チェックと同じ意味 )を5個設置し、調べたい列( 各バッテリー交換日から )を 選択すると抽出します。												
  ・もう1個ボタンを設置します。2個目のボタンは、選択した各列の抽出する為のボタンです。												
  …コードは現在は、勿論ありません。カウントまで作りこまないと作っても意味ありませんからね。												

 ーーーー 前回の記事( 終了 ) ーー−−−−−−−−−−−−−−−−−−−−−−−−−−−−												

 >また、▲ボタンを押すと、最上段が一番上に来るようにマクロでします。( 必要ならばです )												
 元データの1行目ということでしょうか。												

 見出しの行を除いた1行目にです。もしくは画面の真ん中のが入力がしやすいと思うのでセンターと言う のも有ですね。												
 セルが選択されるのですぐわかりますし												

 ※質問:見出しの行数は何行がいいのですか?												
 特に希望がないなら2〜3行ですが、印刷範囲を考えると少しでもセル幅を狭くしたいので私なら3行にしますけど…												
 で抽出した( コピーするシート )方は、2行か1行にします。印刷用とお客様にそのまま抽出データを渡 せるようにします。( 私ならですが )												
 ・印刷して渡すか、PDFをメール送信するかは好きにしてください。												

 >カレンダーのカスタマイズの件は、おっしゃる通りですね。												

 ん?ちょっと大きいと言うことですか?小さくすれば良いかと…												
 解らないなら聞くことです。												

 >ユーザーフォームにカレンダーを設定することも出来ますか?												
 >https://www.sejuku.net/blog/37407												
 >↑ココにカレンダーの使い方がありましたが、この方法は『業務管理システムメニュー画面』の												
 >抽出期間に使えるのでしょうか。												

 >もこなさんに教えていただいたカレンダーをカスタマイズしたものと同じように、												
 >期間抽出が必要な時に、左上のピンクの部分をマウスが通過すると、カレンダーが右下の位置に表示されるようにします。												
 >欲しい時だけ表示するのです。( ボタンは可能な限り使用しません。 )     												
 >と同じような表示方法にすることが可能なのでしょうか。												

 「Microsoft Date and Time Picker Control」(略してDTPicker)ですか?												
 う〜ん出来るかやってみないと解りません。と言うかもこなさんに教えていただいたカレンダーを小さくすれば?												
 なにを拘ってますか?												

 大幅な変更はキツイです。時間消費がタダでさえ高いので、ちょっとの違いで無駄時間です。それなら 私はここで降ります。												
 もこなさんのカレンダーでも、コードを改良して日付けを選択すればユーザーフォームの中のラベル等 に表示させる事は可能ですよ。												
 後で、説明します。												

 ★★★リマインダーについての補足★★★												

 リマインダーは、この画像と同じように日付けを入力すればカウントされますよ。												
 https://d.kuku.lu/1d5c8bac2												
 ただし、コードは今日を基準値にしていますので、セルに入力する日付けは変更しないとカウントしません。												

 ★★★下記の内容について★★★												

 >https://blog-tips.sekenkodqx.jp/2019/05/07/excel-reminder00001/												
 >についても、再度やってみたところ、正常に機能しなくて、手が止まってしまいました…。												

 についても、再度やってみたところ?とは??? なに?												
 これは何でしょうか?こんなのする話でてませんが…私は指示もしてません。												
 コードの書き方を勉強する為に、参考にしたと言うことですか?												

 それとも、タスクを管理をしたくてご自身で作ってると言うことですか?												

 >現時点ではリマインダー機能の理解で、正直止まってしまっていて、私の知識がついていけていない状態です。												

 (隠居z)さまは、動いてるからコードは合ってると思うし…何で手こずってるんだろう?												
 何が難しいのかな? 同じサンプルシートを作成してすれば良いだけですよ。												
 B1へ 13:00 と入力する。C1へ 17:00と入力する												
 コードは、各モジュールにそのまま貼り付けて、BOOKを閉じて開くと、リマインダーが表示されるですよ。												

 >(右下の大きい白い枠)というのは、[入力]というところですよね?												
 >ここは、管理NOのみでしょうか。												

 そこは、管理No.のみを入力して抽出させる TEXTBOX です。												

 >左の枠の、ピンクとオレンジの選択部分は、特にあいまい検索については、どこに入力が可能なのでしょうか?												

 ーーーー 前回の記事( 初め ) ーー−−−−−−−−−−−−−−−−−−−−−−−−−−−−												

 ★★★ダウンロードのたたき台について★★★												

 ・下記の例は、URL:ダウンロードはたたき台です。                                                                                       												
 ( メインのデータ画面( 元データ )と、抽出用ユーザーフォーム( 真ん中の))、表示左下のは、話 の”ねた"       ←ねた                                                                          												

  バッテリー交換元データ画面サンプル&ユーザーフォームたたき台.JPG (174 KB)                                                                                    												
  ダウンロードURL : https://d.kuku.lu/1d5c8bac2 												

 ーーーー 前回の記事( 終了 ) ーー−−−−−−−−−−−−−−−−−−−−−−−−−−−−												

 ※重要												

 あいまい検索についてはレ点入力して TEXTBOX にするか迷っていただけです…どうするか話をしようとね												
 前回アップロードしたのは...ただの話の”ねた" 画像です。												
 まったく話がすすみませんが…レイアウトを両者で検討する為に、張り付けたサンプルですよ。												
 リマインダー機能とは全く別の抽出方法をするユーザーフォームです。												

 もう、レイアウトが決まらないので、勝手に抽出条件を決めました。最大4パターンとなります。												
 私が重要だと思う抽出条件です。(仮案)												

 ★★★ 抽出条件パターン1~4 ★★★												

 ★パターン1												
 リマインダーによる設定日の抽出期間を各バッテリーの5項目でする												

 ★パターン2												
 自由に抽出期間を決めて各バッテリーの5項目抽出をする												

 ★パターン3												
 あいまい検索で、5項目												

 ・管理NO. ( のみで抽出条件とする )												
 ・需要家名 ( 他の項目 )												
 ・機種名  ( 他の項目 )												
 ・拠点   ( 他の項目 )												
 ・担当者  ( 他の項目 )												

 ※他の項目は、抽出期間を設定して...最大9項目( 5列 )で条件を絞り込みさせます。												
 ※質問:拠点の列はどこになりますか?												

 ★パターン4												

 今日を基準に、各バッテリー交換日の 30日以内、60日以内、90日以内を抽出する。												
 |ૂ•ᴗ•⸝⸝) これはあったほうがいいの?												

 これをするなら、コードは出来ますが、(momoe)さんが条件付き書式にて												
 各列の指定期間をフォントの色を設定出来ないといけませんが…できるかな?												
 さほど難しくはないですが…出来ないなら聞いてくださいな。												

 例:青 = RGB(0, 0, 255) で条件付き書式を指定するですよ。												
 でないとコードが判定できませんから												

 ★パターン1 〜 4 は、別のユーザーフォーム( 業務管理システムメニュー画面 )でします。												
 たたき台を改良した...ちょっとだけ見せましょう。												

 私がイメージした新レイアウト( 業務管理システムメニュー画面 )の概要です。												
 抽出サンプルデータダウンロードURL : https://d.kuku.lu/bfb0412da												
 抽出フォームダウンロードURL : https://d.kuku.lu/a00889a39												

 ※各機能の抽出は、上記の抽出フォームのチェックボックスにレ点入力の有無により検索ボタンを押したときに判定させて												
 抽出条件を決定します。												

 画像の例は、もこなさんに教えていただいたカレンダーのコードを改良して、日付けの開始日と終了日を入力させます。												
 ・Fthにレ点が無いときは、管理No.を抽出する。												
 ・Fthにレ点が有るときは、抽出期間を自由に選択して、且つ交換部品を5項目から選択して、												
  且つあいまい検索を4項目から選択して最大5列で抽出する。												
 ・あいまい検索は、最大5文字が入力可能												
 ・Cthにレ点が有るときは、MultiPage1のpage2( 抽出期間 )に切替て、各バッテリー交換日の 30日以 内、60日以内、90日以内を抽出する。												

 ★★★ 印刷レイアウトについて ★★★												
 印刷サンプルダウンロードURL : https://d.kuku.lu/8cf2ab410												

 ・印刷用は、好きな列を決めてします。お客様へそのまま抽出させたデータで渡せますか?												
 ・お客様へそのまま抽出させたデータで渡せるならA4横になりますか?												
 ・渡せるなら、印刷したい列を言ってくださいな。												

 とにかく先にリマインダー機能ですね。												
 今、コードを新規BOOKに張り付けてしましたが、設置してカウントするまで10分しかかからないですけど^^;												
 リマインダー機能検出結果.JPG (67 KB) ダウンロードURL : https://d.kuku.lu/e0579c42b												

(あみな) 2021/10/25(月) 23:03


 追記

 ・Fthにレ点が無いときは、管理No.を抽出する。ことと
  シートのセルにも日付けを入力できるようにします。

 以上
(あみな) 2021/10/25(月) 23:16

(あみな)様

>何で手こずってるんだろう?
>何が難しいのかな? 同じサンプルシートを作成してすれば良いだけですよ。
すいません…あみな様からのご提案に言葉の意味からついていけていない状態でした…
そもそもの知識がないので、文章を理解することすら出来ない状態で…モジュール? ユーザーフォームってどうやって出すんだったっけ…
標準モジュールってどこにあるの?!などなどでした…

>とにかく先にリマインダー機能ですね。
なんとか出来ました。あみな様が見せてくださったhttps://d.kuku.lu/e0579c42bとは、
若干配色・デザイン等違いますが。とにかく、提供してくださったコードを貼りつける事は出来ました。
ダウンロードURL ://d.kuku.lu/6c77460a8

この後、元データでもう一度ユーザーフォーム設定してみて、
>◆その後の作りこみ
のオプションボタン等を設置してみます。

>※質問:見出しの行数は何行がいいのですか?

 特に希望がないなら2〜3行ですが、印刷範囲を考えると少しでもセル幅を狭くしたいので私なら3行にしますけど…
特に希望はありません。ご提案の3行大丈夫です。

>抽出した( コピーするシート )方は、2行か1行にします。印刷用とお客様にそのまま抽出データを渡 せるようにします。( 私ならですが )
> ・印刷して渡すか、PDFをメール送信するかは好きにしてください。
 はい。

> ・カレンダーはなぜカスタマイズしたかと言いますと、大きかったのと、もし真ん中の表示のように

 ユーザーフォームを作成して、各種の検索( 抽出 )をするならですが、期間抽出が必要な時に											
 左上のピンクの部分をマウスが通過すると、カレンダーが右下の位置に表示されるようにします。											
 欲しい時だけ表示するのです。( ボタンは可能な限り使用しません。 )	
>>カレンダーのカスタマイズの件は、おっしゃる通りですね。												
> ん?ちょっと大きいと言うことですか?
 はい。大きいと感じられたことと、期間抽出が必要な時に左上の部分をマウスが通過すると、カレンダーが右下の位置に表示される
 欲しい時だけ表示するというところに共感しました。

>大幅な変更はキツイです。時間消費がタダでさえ高いので、ちょっとの違いで無駄時間です。
大幅な変更なのかどうかも分からず、むやみに質問し、申し訳ございません。

https://blog-tips.sekenkodqx.jp/2019/05/07/excel-reminder00001/
> についても、再度やってみたところ?とは??? なに?
> これは何でしょうか?こんなのする話でてませんが…私は指示もしてません。
> コードの書き方を勉強する為に、参考にしたと言うことですか?
> それとも、タスクを管理をしたくてご自身で作ってると言うことですか?
リマインダー機能というものの知識が無かったものですから、あみな様がおっしゃっている言葉の内容を理解する為
私なりに、リマインダーとはどんなものがあるのか等、調べてみようと思ったという事です。
余計な事を申し上げたようでスイマセン。
タスク管理…ご自身で作ってる…全然そんなことはありません。

> 私がイメージした新レイアウト( 業務管理システムメニュー画面 )の概要です。
> 抽出サンプルデータダウンロードURL : https://d.kuku.lu/bfb0412da
> 抽出フォームダウンロードURL : https://d.kuku.lu/a00889a39
すごすぎる…

>★パターン4
> 今日を基準に、各バッテリー交換日の 30日以内、60日以内、90日以内を抽出する。

 |ૂ•ᴗ•⸝⸝) これはあったほうがいいの?												
 はい。あるとありがたいです。

> これをするなら、コードは出来ますが、(momoe)さんが条件付き書式にて
> 各列の指定期間をフォントの色を設定出来ないといけませんが…できるかな?
> さほど難しくはないですが…出来ないなら聞いてくださいな。
 RGBカラーの設定はしたことありません。
 条件付き書式の書式ルールを選んで色を選ぶとか、数式を入力して色選択するとか
 しかしたことありません。
 私がそこまで作業を進め、どの時点で、何をするのかということが理解出来たら、
 また教えてください。

まずは、その後の作り込みのオプション設定と、カレンダーの設定をしてみたいと思います。
理解が遅くてスイマセン。

(momoe) 2021/10/26(火) 16:01


(あみな)様

因みに、
サンプル画像 : https://d.kuku.lu/cb468aacf
のようなデザインにする(色や、赤字で『[警告]まもなく交換期限の、機械台数を表示しています。ごちゅういください』等)には、どうやって設定されているのでしょうか。

(momoe) 2021/10/26(火) 16:07


 ε=Σ( ̄ ) ほっ カウント出来たようですね。							

 ◆リマインダー機能の各種参考設定値							

 ・Reminder_Function.JPG (139 KB)							
 https://d.kuku.lu/e6c5cc3ff							

 ・Frame1.JPG (122 KB)							
 https://d.kuku.lu/31cf4a08e							

 ・OptionButton1.JPG (124 KB)							
 https://d.kuku.lu/2f0b3b0ff							

 ・リマインダー機能指定抽出期間.JPG (118 KB)							
 https://d.kuku.lu/014c4315a							

 ・CommandButton1.JPG (113 KB)							
 https://d.kuku.lu/7fd7a5452							

 ・警告.JPG (118 KB)							
 https://d.kuku.lu/d91cafaa0							

 ◆カレンダーを、さらに小さくしてみた (*•̀ᴗ•́*)و ̑̑ [ かわいい ?  (。-∀-)ニヒ ]							

 ・CalendarForm.JPG (216 KB)							
 https://d.kuku.lu/8b13fcbd7							

 ◆下記の参考WEB、又は動画の中にカレンダーを簡単に小さくする為のヒントが							
 隠されているかも知れませんよ。 ( *´艸`) ムフフフフッ							
 ...でも30分前後は掛かったけどね。							

 ラベルのプロパティ<プロパティウィンドウでの初期値設定例>							
 https://www.239-programing.com/excel-vba/ufm/ufm023.html							

 ラベルのプロパティ							
 https://kosapi.com/post-3506/							

 第14回.オプションボタン(OptionButton)の追加							
 https://excel-ubara.com/excelvba3/EXCELFORM014.html							

 VBAユーザーフォーム入門?Eオプションボタンを使おう!							
 マクロちゃんねる							
 https://www.youtube.com/watch?v=HjXvrAfcLOk							

 VBAユーザーフォーム入門?@開いて閉じる流れと仕組みを理解しよう							
 マクロちゃんねる							
 https://www.youtube.com/watch?v=B6uWALZDnW8							

 VBAユーザーフォーム入門?Aシンプルなデータ入力フォームを作る							
 マクロちゃんねる							
 https://www.youtube.com/watch?v=bl5QcdyWxe4							

 【VBA】UserForm 完全解説「UserFormとは何か」基本が分からなければ何もできない							
 Office TANAKA 田中 亮							
 https://www.youtube.com/watch?v=62vdzRK6eKo							

 【VBA】UserForm 完全解説「ラベル」配置のコツと重要なフォーカス							
 Office TANAKA 田中 亮							
 https://www.youtube.com/watch?v=ek7T6jNXbcg							

(あみな) 2021/10/28(木) 00:28


(あみな)様

コメントありがとうございます。

>◆リマインダー機能の各種参考設定値
それぞれ、よく見ながら設定してみます。

リマインダー機能について、元データでもう一度ユーザーフォーム設定してみたのですが、
何が間違っていたのか、まったく作動しない状態で、再度チャレンジ中です。
まずは、それが出来ないとです…。

また、参考web動画のご提供ありがとうございます。
見てみます。

また、分からなければ質問させていただきたいと思います。

(momoe) 2021/10/29(金) 11:45


 オブジェクト名の変更を、忘れてないかな?

 出来たかな?
(あみな) 2021/10/29(金) 13:14

(あみな)様

もう一度挑戦しましたが…なぜか元データで実行すると
結果が得られません。
コードはコピペしているので間違いないと思うのですが…。
https://d.kuku.lu/356348cf3

◆リマインダー機能の各種参考設定値については
少しづつ近づいてきました
https://d.kuku.lu/dabf917cc

しかし…リマインダー機能なぜ働かないのでしょうか。

(momoe) 2021/10/29(金) 16:56


 ゴメン ...仕事中なんで、夜にでもまた連絡します。
(あみな) 2021/10/29(金) 17:30

 元データのBOOKは、拡張子が( ; ; )

 .xlsx から xlsm にしないと
(あみな) 2021/10/29(金) 17:42

 ちゃうw 日付をカウントしないって事かな?
(あみな) 2021/10/29(金) 17:46

 考えられる原因は、いくつかあるのですが

 まず

 ・Label1 〜 Label5 が合っているか?
 ・日付けにて、セルの書式設定は下記になているか?

 https://d.kuku.lu/ccda48329

 ・後は、日付けのところが下記のように右寄せとか
 左寄せになってしまってないか?

 https://d.kuku.lu/37a371988

 ちょっとまずは、ここから確認してくださいな
(あみな) 2021/10/29(金) 20:18

 あ〜ごめん、フィルターする時ではないから
 右寄せとかは関係ないやw
(あみな) 2021/10/29(金) 20:22

(あみな)様

コメントありがとうございます。
>日付をカウントしないって事かな?
はい…そうです。
順番に確認してみました。

>元データのBOOKは、拡張子が( ; ; )
> .xlsx から xlsm にしないと
確認しましたが、マクロ有効シートxlsmで保存されています

>・日付けにて、セルの書式設定は下記になているか?
日付が入っているところは、書式設定も教えてくださったとおりとなっていました
もしかして、空欄についても、*2021/10/29 となっていないといけないということなのでしょうか

日付は、右寄せも左寄せにもなっていないですし…
ご指摘いただいたことに注意して、もう一度チャレンジしてみます。

(momoe) 2021/11/01(月) 19:00


ラベルも、確認されたかな?
(あみな) 2021/11/01(月) 21:07

 まだ原因不明なら...日付けの確認方法と、フィルター関連の注意動画の
 下記でも見てください。当てはまる事があるかもです。

 ・【機能】Excelで最も難しいのは「日付の操作」です。関数では計算できるのに、
 オートフィルタやピボットテーブルで変なことになる。その原因と対処法をご紹介します。

 Office TANAKA 田中 亮
 https://www.youtube.com/watch?v=DTOgaXiK9EM

 ・【機能】お分かりいただけただろうか…あなたが日付だと思い込んでいたもの正体とは

 Office TANAKA 田中 亮
 https://www.youtube.com/watch?v=-UmPp_K-GoU
(あみな) 2021/11/02(火) 13:01

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.