[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『指定セルを選択するとFormを表示させる方法』(まさ)
引き続きお世話になります。
下記コードは、ワークシートモジュールに記載しているものです。
処理内容は
・指定セルを選択するとFormを表示し
・指定外セルの場合はFormを閉じる
といった動作をします。
質問は、
IF Target.Row = 4 And Target.Column = 6 Then の部分について
↓ IF Target. Range("F4") Then
と言った感じで記載したいのですが、型が一致しませんとでます。
正しい記述方法についてアドバイスの程よろしくお願いします。
現在の、コードです(見た目悪いかもしれませんが一応動いているみたいです)
' ◆Worksheetのコード◆
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row = 4 And Target.Column = 6 Then UserForm1.Show vbModeless Else
If Target.Row = 13 And Target.Column = 6 Then UserForm1.Show vbModeless Else
If Target.Row = 14 And Target.Column = 6 Then UserForm1.Show vbModeless Else
If Target.Row = 42 And Target.Column = 6 Then UserForm1.Show vbModeless Else
If Target.Row = 43 And Target.Column = 6 Then UserForm1.Show vbModeless Else
If Target.Row = 44 And Target.Column = 6 Then UserForm1.Show vbModeless Else
If Target.Row = 5 And Target.Column = 53 Then UserForm1.Show vbModeless Else
If Target.Row = 13 And Target.Column = 54 Then UserForm1.Show vbModeless Else
If Target.Row = 17 And Target.Column = 54 Then UserForm1.Show vbModeless Else UserForm1.Hide End If End If End If End If End If End If End If End If End If
If Target.Row = 6 And Target.Column = 53 Then UserForm2.Show vbModeless Else UserForm2.Hide End If
End Sub
< 使用 Excel:Excel2010、使用 OS:Windows7 >
(H) 2015/02/07(土) 13:24
一例です。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Target(1).Address(False, False) Case "F4", "F14", "F42", "F43", "F44", "BA5", "BB13", "BB17" UserForm1.Show vbModeless End Select
If Intersect(Target, Range("BA6")) Is Nothing Then UserForm2.Hide Else UserForm2.Show vbModeless End If
End Sub
(β) 2015/02/07(土) 19:26
もし、Intersect処理がお望みなら
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("F4, F14, F42, F43, F44, BA5, BB13, BB17")) Is Nothing Then UserForm1.Show vbModeless
If Intersect(Target, Range("BA6")) Is Nothing Then UserForm2.Hide Else UserForm2.Show vbModeless End If
End Sub
(β) 2015/02/07(土) 20:03
セル領域に抜けあり。
Case "F4", "F13", "F14", "F42", "F43", "F44", "BA5", "BB13", "BB17"
If Not Intersect(Target, Range("F4, F13, F14, F42, F43, F44, BA5, BB13, BB17")) Is Nothing Then UserForm1.Show vbModeless
(β) 2015/02/07(土) 20:15
To (H)さん
Union(Range("F1"), Range("F6")) これはオリジナルコードの読み違いだとして(たぶん・・・)
この領域は Union メソッドを使わずとも Range("F1,F6") で直接指定可能です。
Sub Test() MsgBox Union(Range("F1"), Range("F6")).Address & vbLf & _ Range("F1, F6").Address End Sub
なお、 Range("F1,F6") は F1「と」F6 ですが、Range("F1","F6") と記述すると F1 「から」 F6 となります。 ご参考まで。
(β) 2015/02/07(土) 20:58
ありがとうございます。
動作確認しました。
Form2は、指定セル以外は、閉じるようになっておりますが
Form1が、指定セル以外は、閉じないようです。
下記のコードの部分で、UserForm1.Hide する場合
どの部分にコードを記述すればよろしいのでしょうか?
すみません、アドバイスよろしくお願いします。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("F4, F14, F42, F43, F44, BA5, BB13, BB17")) Is Nothing Then UserForm1.Show vbModeless If Intersect(Target, Range("BA6")) Is Nothing Then UserForm2.Hide Else UserForm2.Show vbModeless End If End Sub (まさ) 2015/02/07(土) 21:00
コードのその部分を見過ごしていました。(オリジナルコードがきわめて見づらいので、と言い訳?)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("F4, F13, F14, F42, F43, F44, BA5, BB13, BB17")) Is Nothing Then UserForm1.Show vbModeless Else UserForm1.Hide End If
If Intersect(Target, Range("BA6")) Is Nothing Then UserForm2.Hide Else UserForm2.Show vbModeless End If End Sub
または
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Target(1).Address(False, False) Case "F4", "F13", "F14", "F42", "F43", "F44", "BA5", "BB13", "BB17" UserForm1.Show vbModeless Case Else UserForm1.Hide End Select
If Intersect(Target, Range("BA6")) Is Nothing Then UserForm2.Hide Else UserForm2.Show vbModeless End If
End Sub
(β) 2015/02/07(土) 21:23
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.