-PR-
解決
済み

VBAでのセル操作

  • すぐに回答を!
  • 質問No.65029
  • 閲覧数42
  • ありがとう数1
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 35% (12/34)

こんばんわ。
エクセルのシート上であるデータをコントロールキーを押しながら選択します。
そのデータを処理するときに、RowのAに必須データが入っているのですが、もし、RowのAを選択していなかったら、マクロ側でAのデータをSelectionに加えたいのです、、、
説明がへたくそですでゴメンナサイ。
Selection.Areasに、マクロ側でエリアを追加する事などできるでしょうか??
よろしくお願いします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.4
レベル13

ベストアンサー率 68% (791/1163)

april21さんのadressを検索するのはいいアイデアですね。
#2でチェックはFor Each ・・・でと書きましたが必須範囲を含む範囲を選択した場合、うまくいかないと思い、別の方法を考えました。
下は必須範囲を含む範囲を選択した場合は「選択した」ことにしています。
intersectで選択部分と必須部分との共通部分を調べています。選択部分が完全に必須部分を含む場合は「選択」としています。

Public Sub AreaCheck2()
Dim rgHissuArea As Range '必須エリア
Dim rgSentakuArea As Range '選択エリア
Dim rgKyotuu As Range '共通部分

Set rgHissuArea = Range("A1:B2") '***必須データエリアをセット***
Set rgSentakuArea = ActiveWindow.RangeSelection

'intersectメソッドで共通部分を調べる
Set rgKyotuu = Application.Intersect(rgSentakuArea, rgHissuArea)
If rgKyotuu Is Nothing Then
'共通部分がない場合
MsgBox "必須エリア:" & rgHissuArea.Address & "は未選択です。"
rgSentakuArea.Select
Exit Sub
Else
'共通部分がある場合
If rgKyotuu.Address = rgHissuArea.Address Then
'必須エリアが完全に含まれている
MsgBox "必須エリア:" & rgHissuArea.Address & "は選択されています。"
rgSentakuArea.Select
Exit Sub
Else
'必須エリアが完全に含まれていない
MsgBox "必須エリア:" & rgHissuArea.Address & "は未選択です。"
rgSentakuArea.Select
End If
End If
End Sub
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.2
レベル13

ベストアンサー率 68% (791/1163)

moon_pocoさんの式で範囲Aの選択を必須とした複数範囲が選択できると思います。 また、Unionメソッドは和集合を返すと思いますので、範囲Aの選択をチェックしなくても望む答えは得られると思います。 チェックが必要であれば・・・For Each で調べればいいと思います。 下記で動作を確認できると思います Public Sub Sentaku() Dim rgHissuAr ...続きを読む
moon_pocoさんの式で範囲Aの選択を必須とした複数範囲が選択できると思います。
また、Unionメソッドは和集合を返すと思いますので、範囲Aの選択をチェックしなくても望む答えは得られると思います。
チェックが必要であれば・・・For Each で調べればいいと思います。

下記で動作を確認できると思います

Public Sub Sentaku()
Dim rgHissuArea As Range '必須エリア
Dim rgSentakuArea As Range '選択エリア
Dim rgMultiArea As Range '結合エリア

Set rgHissuArea = Range("A1:B2") '必須データエリアをセット
Set rgSentakuArea = ActiveWindow.RangeSelection
'rgMultiAreaは和集合になる
Set rgMultiArea = Union(rgHissuArea, rgSentakuArea)
rgMultiArea.Select
End Sub


  • 回答No.1
レベル5

ベストアンサー率 20% (1/5)

これではどうでしょうか Union(Selection, Columns("A")).Select RowのAを選択しているか,どうかをチェックするのは すいません,わかりませんでした。
これではどうでしょうか

Union(Selection, Columns("A")).Select


RowのAを選択しているか,どうかをチェックするのは
すいません,わかりませんでした。
  • 回答No.3
レベル11

ベストアンサー率 42% (91/216)

みなさんが回答されてるのでもういいかなって思ったのですが 選択のチェックも入れてたので・・・。 Aが何を示すものか良くわからなかったので$A$1にしてます。 適当に変更してください。 ↓のマクロはA1が選択されてない場合A1を追加します。 ----------------------------------------------------------------- Sub sentak ...続きを読む
みなさんが回答されてるのでもういいかなって思ったのですが
選択のチェックも入れてたので・・・。

Aが何を示すものか良くわからなかったので$A$1にしてます。
適当に変更してください。
↓のマクロはA1が選択されてない場合A1を追加します。
-----------------------------------------------------------------
Sub sentaku()
Dim sentaku As String
sentaku = Selection.Address
If InStr(1, sentaku, "$A$1", 1) = 0 Then sentaku = sentaku + ",$A$1"
Range(sentaku).Select
End Sub
------------------------------------------------------------------
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ