ここから本文です

エクセルのマクロについて質問です。

cas********さん

2018/5/2023:04:10

エクセルのマクロについて質問です。

前回マクロを教えて頂いたのですが、https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q101902986...

条件
A列最後の数字を返すマクロ
例グループ1~3
(A)列 (B)列( C)列
(連続回数B列)( NO連続回数C列)
15 (0)( 1)
30(0) (2)
33(0) (3)
3 (1)( 0)
25 (0)( 1)
0 (0)( 2)
1 (1)( 0)
2 (2)( 0)
0 (0) (1)



C列 F列 I列
3行 (1~3)( 1~6)( 1~12)
4行(4~6)( 4~9)( 13~24)
5行(7~9)( 7~12)( 25~36)
6 行(10~12)( 10~15)( 1.4.7.10.13.16.19.22.25.28.31.34)
7 行(13~15)( 13~18)( 2.5.8.11.14.17.20.23.26.29.32.35)
8行(16~18) (16~21)( 3.6.9.12.15.18.21.24.27.30.33.36)
9 行(19~21)( 19~2)(0)
10行( 22~24)( 22~27)
11行(25~27)( 25~30)
12行(28~30) (28~33)
13行 (31~33)( 31~36)
14行 (34~36)



追加で①(G3~G13)・(H3~H13)・(J3~J9)・(K3~K9)にも同じように計算されたマクロを表示させたいのですがどうしたら宜しいでしょうか?

②新しいグループ(J6・7・8)にも同じ条件でのマクロ計算をさせたい。

③またA列に値を記入する度にマクロを自動再計算してくれる様にするにはどうしたら良いですか?

④上記(①~③)を踏まえたマクロを教えて頂けますと助かります。

前回のおしえて頂いたマクロは
'
DefInt A-Z
Option Explicit
'
Sub Macro1()
'
Dim Row As Long
Dim Group As String
Dim Min
Dim Max
'
For Row = 3 To [C2].End(xlDown).Row
Group = Cells(Row, "C")
Min = Val(Group)
Max = InStr(Group, "~") + 1
Max = Mid(Group, Max)
Cells(Row, "D") = ContiguousLast(Min, Max, True)
Cells(Row, "E") = ContiguousLast(Min, Max, False)
Next Row
End Sub
'
Function ContiguousLast(Min, Max, Flag As Boolean)
'
Dim Row As Long
Dim Cell As Integer
'
For Row = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
Cell = Cells(Row, "A")
'
If Cell < Min Or Cell > Max Xor Flag Then
ContiguousLast = ContiguousLast + 1
Else
Exit For
End If
Next Row
End Function

ContiguousLast,Dim Row As Long,Next Row,A&amp;quot,Flag As Boolean,クループ,プログラム

閲覧数:
68
回答数:
1
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

lgk********さん

2018/5/2122:31:26

前に私が答えたのだから、私に回答リクエストをすればよかったのに。
「とても素晴らしい回答者様でした。」おほめいただいたのですが、あなたは質の悪い質問者です。
今回は解っているのでいいのですが、今後お手数でも、こうなって欲しいという結果の値を書いて欲しいです。おかげでこっちは何度手間を強いられたことか。今後、結果の値が無ければ無視します。
ものすごく2度手間感かあります。最初から、この形で質問して欲しかったです。質問した時に、ここまで考えていなかったのなら仕方がないですが。新しい質問ししてくれたからまだいいです。もしこれが返信に書いてあったら切れていました。今後、回答者の複数手間にならないように、十分考えてから質問して欲しいです。

このままの形でやろうとすると、プログラムの大幅変更が必要になります。クループの表記方法は、勝手に変更させていただきました。
また、縦横になった事で、クループを増やす機能は大変になったので、省きました。プログラム中に[C3:K14]という部分があるので、ここを変更すれば、グループの範囲を変更できます。但し、自由に移動はできません。列が3の倍数の時、グループとしているので、D列、E列に移動すれば、正常動作しません。増やすのは問題ありません。

https://box.yahoo.co.jp/guest/viewer?sid=box-l-bahport3hkq3a2qccdcv...

質問した人からのコメント

2018/5/21 22:56:35

ご親切にご回答頂き、ありがとうございます。
回答リクエストを存じ上げず申し訳ございませんでした。
差支えなければ次回から回答リクエストさせて頂きたいと思いますので今後ともよろしくお願い致します。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる