結合セルが選択されたときにユーザーフォームを表示するには?

Question 5310 拙著「Excel VBA そのまま使える実用マクロ 500連発」 Previous Next
詳細は こちら サンプルNo.390 ◆ 環境・・ Excel 2000 & Windows XP

はじめまして。 よろしくお願い致します。
サンプルNo390番の 『一定のセルが選択されたらユーザーフォームを表示する』 と同じように、選ぶセルによって表示されるユーザーフォームを違うものにしたいと思っております。
ですが、選ぶセルが統合されたセルだと反応しません。 統合セルがあまりよくないことは知っていますが、レイアウト上統合セル以外思いつかなかったもので・・・。
どのようにすれば、いいのでしょうか? よろしくお願いいたします。
Answer   Copyright (C) 2008.5.14 永井善王
拙著 「Excel VBA そのまま使える実用マクロ 500連発」 を お求めいただき、ありがとうございます。

390番のマクロは、右図のように、Sheet1の
B列のセルがクリックされたら 性別を選択するユーザーフォームを、
C列なら 都道府県のユーザーフォームを表示してくれます。

貴方のご希望は、左図のように
結合セルがクリックされたときにユーザーフォームが表示されればよいのですね。

390番のマクロは Sheet1のコード画面で下記のとおりの
Worksheet_SelectionChangeイベントプロシージャになっています。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count = 1 And Target.Row > 1 And Target.Row < 11 Then
        If Target.Column = 2 And UserForm1.Visible = False Then UserForm1.Show
        If Target.Column = 3 And UserForm1.Visible = False Then UserForm2.Show
    End If
End Sub
このコードの中の赤字の部分、つまり、Target.Count = 1 は、クリックされたセルが1つかどうかですから、仮に
A2:B2のように 2つのセルが結合されているとすると
Target.Count = 2 に変えればよいことになります。

以上を参考にしてやってみてください。そして、上手くできたら連絡ください。

 

Excel VBA Macro