すぐに役立つエクセルVBAマクロ集 すぐマク
すぐに役立つ Excel VBA マクロ集 Excel VBA Macro
FAQ
Google
 
Home |  What's New! |  Gallery |  Introduction |  Service |  Profile 500連発・組み方講座フォロー Big Color Pallet
[広告]
Excel VBA Macro
Excel DownLoad
© 1997 - 2008
永井善王.
All RightsReserved.
HappyTech & Co., Ltd.
www.happy500z.com
Excel VBA Macro ・ ユーザーフォーム ・ FAQ
結合セルが選択されたときにユーザーフォームを表示するには?
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イベントプロシージャになっています。
'=========================================================================================
' 一定のセルが選択されたらユーザーフォームを表示する       Copyright(C)1997-2006 永井善王
'-----------------------------------------------------------------------------------------
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 に変えればよいことになります。

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