プロが教える店舗&オフィスのセキュリティ対策術

A・B・C列があり、A列には連番を、B列にはVLOOKUP関数が入っており、
C列には、B列の検索値が入っております。
B列は下記のVBAコードで同じ値をセル結合させています。

Sub 結合()
Dim rngU As Range
Dim i As Range
Dim rngB As Range
Dim Key As String

Set rngB = Range("B2")
Set rngU = Range(Range("B3") _
, Range("B6000").End(xlUp).Offset(1))
Application.DisplayAlerts = False
For Each i In rngU
If Not i.Text = Key Then
If (Not i.Offset(-1) Is rngB) And _
(Not i Is rngB) Then
Range(rngB, i.Offset(-1)).MergeCells = True
End If
Set rngB = i
End If
Key = i.Text
Next i
Application.DisplayAlerts = True
End Sub

そこで、A:3から連番を振りたいのですが、B列の決まった特定の結合セルの
隣のA列のセルもB列の決まった特定の結合セルと同数にセル結合させ、
連番を1つとしてカウントしたいのです。
また、A列にはB列同様にVLOOKUP関数が入っており、連番を振りたくないセルには
印が付くようにしています。
行数やB列の決まった特定の結合セル番地はランダムに変わるため、B列の結合セルで参照させるしか
ないのかなっと思っております。
B列の特定の結合セルの値は決まっております。


上記のような処理を自動にさせるためのVBAが分かる方がいらっしゃいましたら、
是非ご教授お願いいたします。

A 回答 (1件)

昨日もこの質問を読んで、質問で何がしたいかつかみかねて、パスした。

今見ても答えが付いてない。判りにくいからではないですか?
ーー
質問をVBAコードや自分が進行中のロジックなどから離れて、模擬実例を工夫して、ABC列にデータを入れて説明されることを望みます。
ーー
>B列にはVLOOKUP関数が入っており
>B列の検索値が入っております。
>VBAコードで同じ値をセル結合させています。
回答者に、コードの質問でなければ、VBAコードなどなるべく判読させないこと。質問者は苦労して作り上げたかもしれないが、言葉で書けば済むのではないか。
「B列で値が同じセルはセル結合している」ではどう?
ーー
B列の結合後の1セルの塊を単位として、A列に連番を振りたい?
上記コードの中では、同時にそれはできない事情があるのですか?
>A列にはB列同様にVLOOKUP関数が入っており、連番を振りたくないセルには印が付くようにしています。
A列に関数が既に入っていて、VBAで連番を振ると、関数は壊れてしまうが?なぜA列にVLOOKUP関数が入っているのか、そこになぜ連番を振るのか、状況がわからない。
ーー
>行数やB列の決まった特定の結合セル番地はランダムに変わるため、B列の結合セルで参照させるしかないのかなっと思っております。
B列の値などが動くと、瞬時に質問の処理をやり直すなど考えているのかな。バッチ作業性と瞬時作業(イベント型)性の区別はどうですか。
変わっても、この作業を再度する仕組みも考えられるが、それなら、それでよいのでは。
>特定の結合セルの値は
「特定の」がわかりにくい。「結合済みのセル」をみて、とか。
ーー
B列の結合済みのセルを見つつ(または質問上記のコードのロジックと同じものを使い)、A列に連番を振っては、都合が悪いのですか?
    • good
    • 0
この回答へのお礼

imogasiさん
ご指摘の通り、もう一度頭の中を整理して
再度質問させていただきます。
この度はご迷惑をおかけして申しわけありませんでした。

お礼日時:2007/08/07 12:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!