[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『色付の結合セルを1と数える方法』(カルロ)
Excel2002,WindowsXP
A B C D E 1 3 黄色セル 黄色セル 黄色セル (セル結合) 2 B1=黄色セル、D1:E1=黄色セルで結合している。 A1=黄色セルの合計数
下記のようなユーザー定義関数で計算した結果、結合したセルは、2と数えられます。 Function 色付セル(adrs As Range) Dim c As Range, Cnt As Long Application.Volatile For Each c In adrs If c.Interior.ColorIndex = 6 Then '黄色セル 件数 Cnt = Cnt + 1 End If Next c 色付セル = Cnt End Function
*** D1:E1=黄色セルで結合しているところは、1と数えたい。 *** 結合したセルを1とかぞるには、どうしたらよいのでしょうか? 過去の事例を拝見しましたが、掲載されていません。 教えて下さい。よろしくお願いします。
>結合したセルを1とかぞるには、どうしたらよいのでしょうか? 結合しているかどうか、MergeCells プロパティで判断してはどうでしょう。 ヘルプも探してみましょう。或いはキーワードに用いて下さい。 (クルミ)
クルミさんヒントを有難うございます。 MergeCells プロパティでセル結合したセル数を調べることができました. しかし、セル結合しているセルは、1ヶ所ではなく、数箇所あります。 セル結合: D1:E1=黄色セルで結合(2つのセルを結合)、 F1:I1=黄色セルで結合(4つのセルを結合)のように結合セル数もランダムです。
下記のように書けば、結合したセルが、6つになります。 結合したセルの合計数で表現されます。
Function 結合セル(adrs As Range) Dim c As Range, Cnt As Long Application.Volatile For Each c In adrs If c.MergeCells Then 'セル結合しているセル Cnt = Cnt + 1 End If Next c 結合セル = Cnt End Function
結合セル数は、わかりますが、それで結局2箇所のセルが結合 していることを計算するには、どうしたらよいのでしょう? 良い方法がありましたら、教えて下さい(カルロ)
セルを結合すると計算式を作るにしても、マクロを作成するにしても、何かと厄介な 問題が絡んできます。 いっその事結合を解いてやればなんの問題もおこりまへんから、さうしませう。
と言うてしまえば愛想もクソもないんで・・・ (弥太郎) Function 色付セル(adrs As Range) Dim c As Range, r As Range, Cnt As Long, u As Long, x() Application.Volatile For Each c In adrs If c.Interior.ColorIndex = 6 Then '黄色セル 件数 Cnt = Cnt + 1 If c.MergeCells = True Then On Error Resume Next If IsError(Application.Match(c.Address, x, 0)) Then For Each r In c.MergeArea ReDim Preserve x(u) x(u) = r.Address u = u + 1 Next r Else Cnt = Cnt - 1 End If End If End If Next c 色付セル = Cnt On Error GoTo 0 End Function
考え方だけですけど・・・。 後は適当に手を加えてください。 BJ
Dim Rg As Range For Each Rg In Range("A1:G15") If Rg.Interior.ColorIndex = 6 Then If Rg.Address = Rg.MergeArea.Cells(1).Address Then ct = ct + 1 End If End If Next MsgBox ct
BJさん回答有難うございます。試してみましたらパッチリOKでした。 有難うございました。今後共 よろしくお願いします(カルロ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.