@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

Excel VBA セル取得方法について

1
投稿者投稿内容
erikun
常連さん
会議室デビュー日: 2003/10/10
投稿数: 32
投稿日時: 2008-09-24 14:11
【やりたいこと】
複数行列選択されたかを判断し、
複数行選択時はエラーメッセージを表示させ、
1セル(1行1列)選択時のみ、
次の処理を実行させようと思っています。

【教えていただきたいこと】
範囲指定されたか否かの判断の
コーディングがわからずにおります。

どうか教えてください。
よろしくお願いいたします。

ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2008-09-24 14:59
引用:

erikunさんの書き込み (2008-09-24 14:11) より:

【やりたいこと】
複数行列選択されたかを判断し、
複数行選択時はエラーメッセージを表示させ、
1セル(1行1列)選択時のみ、
次の処理を実行させようと思っています。

【教えていただきたいこと】
範囲指定されたか否かの判断の
コーディングがわからずにおります。

どうか教えてください。
よろしくお願いいたします。


どのタイミングで判断するつもりですか?
erikun
常連さん
会議室デビュー日: 2003/10/10
投稿数: 32
投稿日時: 2008-09-24 15:20
q.どのタイミングで判断するつもりですか?

A.選択後、実行ボタンを押して、
マクロ内でチェックしたいと思っています。

以上、よろしくお願いいたします。
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2008-09-24 15:31
こんな感じとか。

コード:

Sub test()
If InStr(1, Selection.Address, ":", vbTextCompare) >= 1 Then
MsgBox "選択は、1セルにしてね"
Else
MsgBox "OK!"
End If
End Sub



追記:ActiveWindow.RangeSelection.Address の方が厳密でいいかも。

[ メッセージ編集済み 編集者: ひろれい 編集日時 2008-09-24 15:34 ]
こあら
大ベテラン
会議室デビュー日: 2007/06/26
投稿数: 157
投稿日時: 2008-09-24 15:46
> 追記:ActiveWindow.RangeSelection.Address の方が厳密でいいかも。

ActiveWindow.RangeSelection.Count の方が素直でいいかも。

まぁ何にしても、肝は Selection(もしくはRangeSelection) なので、
ヘルプやウォッチ式を駆使して、やりたいことができそうなメンバを探してみて下さい。
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2008-09-24 15:53
引用:

こあらさんの書き込み (2008-09-24 15:46) より:

ActiveWindow.RangeSelection.Count の方が素直でいいかも。


おっしゃる通りですねorz
訂正ありがとうございます。
erikun
常連さん
会議室デビュー日: 2003/10/10
投稿数: 32
投稿日時: 2008-09-25 09:14
ひろれいさん、こあらさん。

ActiveWindow.RangeSelection.Count を使用して、
やりたいことのコーディングができ、
テストも無事終了いたしました。

ありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)