
excelでカレンダーコントロールを設定しました。
ターゲットとしているセルが、結合セルなのですが、うまく表示されません。セルの結合を解除すればうまくいきます。
しかし、ターゲットのセルは結合させておきたいので、何か解決策はありますでしょうか?
以下、コードの内容です。
■フォームコード
Private Sub Calendar1_DblClick()
ActiveCell.Value = Me.Calendar1.Value
End Sub
■シートコード
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address <> "$A$6" And Target.Address <> "$A$13" And Target.Address <> "$A$20" And Target.Address <> "$A$27" Then Exit Sub
UserForm1.Show
End Sub
No.1ベストアンサー
- 回答日時:
これでいけるのではないかという案を。
どのセルが結合しているのかわかりませんが
仮に「A6とB6」が結合されているのでしたら
Target.Address <> "$A$6" を
Target.Address <> "$A$6:$B$6" ←と、
このように変えてみてはいかがでしょうか?
ワイルドカードを使う方法も考えてみましたが
ターゲットが「AA67」などの場合にも
誤作動してしまいそうなのでこの方法を提案します。
ご回答ありがとうございます!
結合しているセルはA6~A8でした。
ご回答を参考に$A$6:$A$8でやってみたところ、うまくいきました!
ありがとうございましたm(_ _)m
No.2
- 回答日時:
>ターゲットとしているセルが、結合セルなのですが、うまく表示されません
うまく表示されないとは、UserFormが表示されないということですよね?
例えば、セルA6:A9 が結合されていたら、
Target.Addressは、$A$6:$A$9と結合セルの3セルのアドレスになります。
で、If Target.Address <> "$A$6"
この結果は、常にTRUEになり質問のような結果になります。
結合セルありの場合でもうまくいくようにする方法を2つ提示しておきます。
'●(1)選択したセルの先頭セルのアドレスを比較-------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells(1).Address <> "$A$6" And _
Target.Cells(1).Address <> "$A$13" And _
Target.Cells(1).Address <> "$A$20" And _
Target.Cells(1).Address <> "$A$27" Then Exit Sub
UserForm1.Show
End Sub
'●(1)Intersecメソッドを使う方法----------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A6,A13,A20,A27")) Is Nothing Then Exit Sub
UserForm1.Show
End Sub
'-----------------------------------------
以上です。
ご回答ありがとうございます!
>うまく表示されないとは、UserFormが表示されないということですよね?
→はい、その通りです。
基本的な用語も使えず、お恥ずかしい限りです(><;)
間違っていた理由も分かりやすいご説明のおかげで、理解できました!
>●(1)Intersecメソッドを使う方法
他サイトで参考させていただいたなかに、ご提示のコード表示がありましたが、いまいち理解できず、If Target.Address <> "$A$6"にしていました。
今後も勉強していきます。ありがとうございましたm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル
-
【マクロ】WEBシステムから保存...
-
Excelの新しい空白のブックを開...
-
【マクロ】宣言は、何のために...
-
【マクロ】アクティブセルの2...
-
【エクセル】期限アラートについて
-
【関数】不規則な文章から●●-●●...
-
スプレッドシートで複数のプル...
-
excelで日付関数の文字列変換の...
-
Excelについての質問です 並べ...
-
VBA チェックボックスをオーバ...
-
findメソッドで、10:00:01 を検...
-
派遣会社とかハローワークとか...
-
マクロOn Error GoTo ErrLabel...
-
エクセルの循環参照、?
-
【マクロ】A列にある、日付(本...
-
空白セルに斜線(罫線)
-
Excelファイルを開くと私だけVA...
-
Excelオンライン 条件にあい、...
-
エクセルで教えてください。 例...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelファイルを開くと私だけVA...
-
エクセルについてどう関数を使...
-
マクロ・VBAで、当該ファイルの...
-
エクセルのセルに画像は埋め込...
-
エクセルで、一部のセルだけ固...
-
【マクロ、画像あり】A表かB表...
-
エクセルでカウントする
-
【マクロ】コードを少しでも、...
-
VBA_日時のソート
-
エクセルで教えてください。 例...
-
エクセル 月間シフト表で曜日ご...
-
セルの左に余白を付ける
-
エクセル
-
エクセルについて教えてください
-
2枚のエクセル表で数字をマッチ...
-
ExcelのIF関数との組み合わせの...
-
エクセルのファイルのコピーを...
-
エクセルで二つのブックの違い...
-
空白処理を空白に
-
Excelのチェックボックスについ...
おすすめ情報