アプリ版:「スタンプのみでお礼する」機能のリリースについて

よろしくお願いします。いつもgooの皆さんに大変お世話になっています
エクセルは2013です

Wクリックの範囲指定を教えてください

If Not Intersect(Target, Rows(32), Range("$B:$H,$K:$N,$P:$AH")) Is Nothing Then
上のコードは、32行でセル範囲が3か所の例です

では、同じように32行で、列がB,G,Jのような単独のセルではコードをどう書いたらよいでしょうか

A 回答 (3件)

>32行で、列がB,G,Jのような単独のセルではコードをどう書いたらよいでしょうか



以下になります。

Intersect(Target, Rows(32), Range("$B:$B,$G:$G,$J:$J"))

または

Intersect(Target, Rows(32), Union(Columns("B"), Columns("G"), Columns("J")))
    • good
    • 1
この回答へのお礼

親切に教えていただきありがとうございます
急用で留守にしておりました
出先でネットが使えず、お礼が大変遅れましたこと申し訳ありません

$B:$B という範囲指定は全く想定外でした
Rows(32) の32を変数にすれば、いつでも行を変更できるので、表のレイアウトを変更する際には大変便利です
ありがとうございました

お礼日時:2016/12/12 23:15

No.1です。



他の質問を見てみると
https://oshiete.goo.ne.jp/qa/9548604.html
の関連質問だったのですね?

おそらくお望みの回答とは異なると思います。
無視してください。m(_ _)m
    • good
    • 0
この回答へのお礼

いえいえ、またひとつ勉強になりました

お礼日時:2016/12/11 05:01

こんばんは!



>If Not Intersect(Target, Rows(32), Range("$B:$H,$K:$N,$P:$AH")) Is Nothing Then

自分的には
If Intersect(Target, Range("B32:H32,K32:N32,P32:AH32")) Is Nothing Then Exit Sub
Cancel = True
"処理"

のようなコードにします。

>同じように32行で、列がB,G,Jのような単独のセルではコードをどう書いたらよいでしょうか
B32・G32・J32セルだけ対象にすればよいのですね?

同じように
If Intersect(Target, Range("B32,G32,J32")) Is Nothing Then Exit Sub
Cancel = True
"処理"

のような感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

tom04さん、こんばんは。
いつも、いつも大変お世話になっております。
お礼が遅れました。

ずっと前にtom04さんに教えてもらった、並べ替えのマクロを会社で使っていて大変重宝しています
昇順固定、降順固定を↑↓の矢印をタイトルに付けて(温度↑のように)やっていましたが
これをWクリックで切り替えられるようにとの要望でいま手直ししています

書いていただいたコードでは、絶対セル番地の$を付けてないので、自分のコードを書き換えて確認してみたところ
お陰様でやっと違いがわかりました

If .Address = "$C$41" Then を最初に覚えたので
Wクリックはすべて絶対セル番地でなければいけないと勘違いしていました
またひとつ勉強になりました

今回、If Not Intersect(Target, Rows(41), Range("B,G,I,K,N,R,AA,AC")) Is Nothing Then だと
「Range メソッドは失敗しました・・・」のエラーになるので質問させていただきました
Range(" ")部分は、素人の私が見てもおかしいと思います
41を変数 gyou などにすれば、表のレイアウト変更時に簡単なのでトライしました

お礼日時:2016/12/11 04:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!