[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『同一シートで複数のマクロを実行』(luke)
同一のシートで複数のマクロ
同じ特定の文字で条件を決めているからか、指定した範囲外もマクロが動いてしまいます。
そういった場合二つのマクロが干渉しないようにするにはどうすれば
いいのでしょうか。
よろしくお願いします。
< 使用 Excel:Excel2016、使用 OS:unknown >
Sub 非表示()
' 定休者非表示 Macro
Dim r As Range Dim i As Long Cells.EntireRow.Hidden = False For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row If Cells(i, "B").Value = "定休" Then If r Is Nothing Then Set r = Cells(i, "B").Resize(6).EntireRow Else Set r = Union(r, Cells(i, "B").Resize(6).EntireRow) End If End If Next i r.EntireRow.Hidden = True End Sub
このマクロと
Sub ★定休非表示()
Dim fCell As Range, starCell As Range, EndCell As Range Dim serchRange As Range
Cells.EntireRow.Hidden = False Set EndCell = Cells(Rows.Count, 1).End(xlUp).Offset(1) EndCell.Value = "★"
Set serchRange = Range(Cells(30, 1), Cells(Rows.Count, 1).End(xlUp))
Set fCell = serchRange.Cells(1, 1) Set fCell = serchRange.Find("定休", fCell, xlValues, xlPart, xlByColumns, xlNext) If fCell Is Nothing Then Exit Sub Do Set starCell = serchRange.Find("★", fCell) Range(fCell.Offset, starCell.Offset(-1)).EntireRow.Hidden = True Set fCell = serchRange.Find("定休", fCell, xlValues, xlPart, xlByColumns, xlNext) Loop Until fCell Is Nothing EndCell.ClearContents
End Sub
このマクロです!
(luke) 2019/03/20(水) 09:18
こいつを |[A] |[B] |[C] [1] |名前|出勤|時間 [2] |A |休み|9時 [3] | | | [4] | | | [5] | | | [6] | | | [7] |B |定休|9時 [8] | | | [9] | | | [10]| | | [11]| | | [12]|C |休み|9時 [13]| | | [14]| | | [15]| | | [16]| | |
こうなっていて
|[A] |[B] |[C] [1] |名前|出勤|時間 [2] |A |休み|9時 [3] | | | [4] | | | [5] | | | [6] | | | [12]|C |休み|9時 [13]| | | [14]| | | [15]| | | [16]| | | そこからしたの30行目から
★の定休から
★ 担当者1: 9:00〜20:30 休み
11:00〜12:00 SC 13:00〜15:30 a君 15:30〜17:00 bくん 18:00〜20:00 Tくん 20:00〜20:30 送迎 ★ 担当者2: 定休 15:30〜16:00 OA 16:00〜18:00 ?tさん 18:00〜19:00 kさん 19:00〜20:00 pさん 送迎 ★ 担当者3: 休み 11:00〜12:00 サポート 15:30〜20:00 hさん 20:00〜20:30 送迎
これが
★ 担当者1: 9:00〜20:30 休み
11:00〜12:00 SC 13:00〜15:30 a君 15:30〜17:00 bくん 18:00〜20:00 Tくん 20:00〜20:30 送迎 ★ 担当者3: 休み 11:00〜12:00 サポート 15:30〜20:00 hさん 20:00〜20:30 送迎
このようになるイメージです!
これをすると、上の閉じていたものが開いたりしてしまうので干渉しないようにできないかと思いました!
(luke) 2019/03/20(水) 09:22
私のコードですねぇ (稲葉) 2019/03/20(水) 11:25
稲葉さん
ありがとうございます。
昨日のものをもう少し工夫してみようかと思いまして。。。!
(luke) 2019/03/20(水) 11:29
こんなリストが同一シートに存在すること自体馬鹿げているし、 [[20190319133819]] の >先方がとんでもないつくりで頼まれてきたのです。。。
依頼されたなら、正しいデータ構成を助言をするべきだし 全て他人任せで与えられたコードを理解しようとしない姿勢は「先方」もこの先困るだろうな...
>上の閉じていたものが開いたりしてしまうので干渉しないように 二番目のコードの Cells.EntireRow.Hidden = False を削除して、一番目のコードの End Sub の一行上に Call ★定休非表示 とするだけで済むと思うけど?
(seiya) 2019/03/20(水) 14:27
おっしゃる通りです。
まだまだ理解が足りていないのは承知していますが。
右も左もわからず仕事が回ってきたので何からいいのかわからなく相談させてもらう形になりました。
みなさん最初はそうだったと思いますが。。。
ここで教えてもらったものを提出するわけではなく
実際にやっている案件で試しにやってみてと来たので
僕がやっているのはあくまでも練習として課題を与えられたような形です。
まったく関係ない業界にいたので本当に何をすればと思い相談していただいていました。
あまり身の上を語ってもあれなのでここらへんでやめておきますが。。。
教えてもらってそのまま横流ししてるわけではなくコードを自分なりに調べなおし
理解しようとしながら勉強させてもらっていますので
また何かあればご助力の程よろしくお願いします。
アドバイスありがとうございます!!長文失礼しました。
(luke) 2019/03/20(水) 14:45
>僕がやっているのはあくまでも練習として課題を与えられたような形です。 これが本当なら、なんでここで質問するの? その練習を他人にやらせて、なに考えているの?
>みなさん最初はそうだったと思いますが。。。 全く同意できない (稲葉) 2019/03/20(水) 17:07
F8を押すと1行ずつマクロの動作を確認できるので、どこで悪さをしているのか特定できるようになって応用が利きますよ。
原因を特定して解決法が分からないときに質問すると回答もしやすいし、回答に対して理解もしやすいと思いますよ。
ただ、正規化もしていないデータベースは将来後悔すると思うので今のうちに理想的なデータベースの作り方をい意識するべきとは思います。
(たかは) 2019/03/20(水) 18:02
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.