Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


15549 / 76734 ←次へ | 前へ→

【66661】Re:複数のセルアドレス取得について
発言  ichinose@久々投稿  - 10/9/22(水) 18:17 -

引用なし
パスワード
   ▼ギン さん:

>このコードで思っていた通りの処理が出来ました。
>(Selection, Selection)
>は初めて使用しました。これて選択出来たのですね。

普通に
set selrng=selection でも良いのですが・・・、

>実はこの選択したセルに
ユーザーが選択したセル範囲なのですよね?
だとしたら、ユーザーが変な操作をする可能性もありますよね?
例えば、こんな選択は極端な例ですが、

Sub sample1()
  Dim selrng As Range
  Range("a1:a10,a1:b10,a1:c10").Select
  Set selrng = Selection
  MsgBox "セルアドレス  " & selrng.Address & "  セルカウント " & selrng.Count
End Sub

これで実行すると、60回セルを調べることになります。しかもダブって・・・。

Sub sample2()
  Dim selrng As Range
  Range("a1:a10,a1:b10,a1:c10").Select
  Set selrng = Application.Union(Selection, Selection)
  MsgBox "セルアドレス  " & selrng.Address & "  セルカウント " & selrng.Count
End Sub

Unionを使うと、結構、整理してくれるんですよね!!
これが理由でユーザー選択セル範囲には、Unionを使う場合があります。


>でも、selrngの変数上ではアドレスは表示されないのですね?

上記の記述で分かると思いますが、

msgbox selrng.address

でアドレスは表示されます。
 

>それから  On Error Resume Next
>If Err.Number = 0 Then
>のエラー処理はは何故入れるのでしょうか?

これは、セル範囲を選択していないときも考慮したためです。
図形を選択した状態で実行すれば、On Error 〜
なしだと、プログラムが止まってしまいますから・・・。
本来は、セルを選択してください というメッセージを表示すればよいですね!!

これでどうですか?
2 hits

【66655】複数のセルアドレス取得について ギン 10/9/22(水) 1:36 質問
【66656】Re:複数のセルアドレス取得について ichinose@久々投稿 10/9/22(水) 6:07 発言
【66657】Re:複数のセルアドレス取得について ギン 10/9/22(水) 8:18 お礼
【66661】Re:複数のセルアドレス取得について ichinose@久々投稿 10/9/22(水) 18:17 発言
【66663】Re:複数のセルアドレス取得について ギン 10/9/23(木) 2:08 お礼
【66659】Re:複数のセルアドレス取得について sasa 10/9/22(水) 10:59 回答
【66660】Re:複数のセルアドレス取得について ギン 10/9/22(水) 12:11 お礼

15549 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free