質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

502閲覧

エクセル VBA実行セルの限定

Mkasai

総合スコア19

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2020/02/25 05:49

セルをダブルクリックすると、A列に〇が付くようにコードを作成しています。
現在のコードは次のとおりです。

Private

1Dim rngTarget As Range 2Dim rngFind As Range 3Dim Trow As Long 4 If Target.Count > 1 Then Exit Sub '複数セル選択禁止? 5 Trow = Target.Row 6 If Cells(Trow, 1).Value = "" Then 7 Cells(Trow, 1).Value = "〇" 8 Else 9 Cells(Trow, 1).Value = "" 10 End If 11 12 MaxRow = Cells(Rows.Count, 2).End(xlUp).Row 13 For Trow = 2 To MaxRow 14 '=IF(A3="〇","〇",IF(L3>0,IF(INDEX($A:$A,MATCH(L3,$B:$B))="〇","〇"," ")," ")) 15 Cells(Trow, 13).Formula = "=IF(RC[-12]=""〇"",""〇"",IF(RC[-1]>0,IF(INDEX(C1:C1,MATCH(RC[-1],C2:C2))=""〇"",""〇"","" ""),"" ""))" 16 Next 17End Sub

現在のコードでは、どのセルをクリックしても〇がついてしまうので、クリック可能なセル範囲を限定したいのですが、うまくいきません。
B2:L301の範囲のみ動くように修正したいです。
お力お貸しください。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Intersectメソッドを使うとよいでしょう。

VBA

12 If Target.Count > 1 Then Exit Sub '複数セル選択禁止? 3 If Intersect(Target, Range("B2:L301")) Is Nothing Then Exit Sub 4

投稿2020/02/25 06:13

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttyp03

2020/02/25 06:15

あ、コード貼るときはきちんと関数名から入れてくださいね。 ダブルクリックイベントのつもりで回答しています。
Mkasai

2020/02/26 23:37

ありがとうございました。希望通りの動きになりました。
guest

0

Excel VBA:ダブルクリックされたセル位置を取得する の記事に書かれた方法で、クリックされたセル位置を取得し、
・それがB2:L301の範囲内であればA列のセルに"〇"を入れ、
・範囲外であれば何もしない、
というコードを書けば良いのではないでしょうか。

投稿2020/02/25 06:12

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問