![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/06/10 11:06
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) エクセル VBAについて 2 2022/05/16 16:33
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
- Excel(エクセル) エクセルのイベントプロシージャーでF列の最終行のセルの入力をトリガーにしたいのですが 1 2022/10/14 09:36
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 09:25
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで 自動的に◯や数字を...
-
【マクロ】2回実行したら、エ...
-
エクセルのツールバーから数値...
-
特定の文字列を含む、住所を抽...
-
Excel 2019 [オプション]の[リボンのユ...
-
祝日と土曜、日曜の合計をカウ...
-
EXCELの散布図で日付が1900年に...
-
マイクロソフトのPADを使ってい...
-
絶対参照
-
エクセルでCtrl+Tでテーブルの...
-
【マクロ】名前を保存する際に...
-
エクセルのクイックアクセスツ...
-
【マクロ】VLOOKUPにて参照元に...
-
Excel分数の表示について
-
【EXCEL】画像の黄色部分の抽出...
-
DATE関数で現在の年齢を出した...
-
Excelについて
-
マクロエクセルのブロック解除
-
Excelピボットテーブルの1行目
-
REGEXREPLACE関数について、
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報