![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
顧客データーを並べ替えるマクロを組んでいます。
顧客データは、10行目以降です。
この10行目以降のセルがアクティブになっていなければ、「並べ替えマクロ」が実行されないようにしようと思っています。
代わりに次のようなメッセージ
「MsgBox "顧客情報、データ内のどこかをクリックして下さい", vbCritical」
…と表示させようと思っています。
以前、質問をしたところ、次のようなアドバイス(シートモジュール)を頂きました。
*************************************
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row < 10 Then
MsgBox "顧客情報、データ内のどこかをクリックして下さい", vbCritical
End If
End Sub
*************************************
…これは、見事に機能したのですが、
これですと、マクロの実行不実行に関わらず、
「9行目より上のセルがクリックされたら」…無条件でメッセージボックスが表示されてしまいます。
そこで、
次のような分岐を作成したいのです。
【9行目以上のセルがアクティブな場合】
→メッセージボックスが表示され、アクティブセルを10行目以降のどこかにするように促され、マクロ終わり。
【10行目以下のセルがアクティブ】
→並べ替えマクロの実行
並べ替えマクロはできていますが、
この上の分岐の部分がまだできません。
これについてのアドバイスをお願いできればと思います。
どうぞ、よろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
何をやってるのか理解してください。
応用以前の問題です。sub すでに出来上がったマクロ()
if activecell.row < 10 then
msgbox "エリア内を選択すること"
exit sub
end if
’ if その他の並べ替え実行条件が成立していなければ
’ msgbox "実行条件が成立していない"
’ exit sub
’ end if
msgbox "並べ替え GO"
end sub
No.3
- 回答日時:
ご相談は
>そこで、次のような分岐を作成したいのです。
という事ですが、お話の流れからいうと
private sub worksheet_change(byval Target as excel.range)
if 並べ替え実行条件成立していなければ
’スルー
exit sub
end if
if activecell.row < 10 then
msgbox "エリア内を選択すること"
exit sub
end if
msgbox "並べ替え GO"
end sub
という具合ではありませんか?
No.2
- 回答日時:
単に趣味の問題ですが、ワタシ的には
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If activecell.Row < 10 Then
MsgBox "顧客情報、データ内のどこかをクリックして下さい", vbCritical
exit sub
End If
msgbox "並べ替え GO"
End Sub
とします。
フローで言えば
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row < 10 Then
MsgBox "顧客情報、データ内のどこかをクリックして下さい", vbCritical
else
msgbox "並べ替え GO"
End If
End Sub
でいいです。
この回答への補足
早速のご回答をありがとうございます。
それで…すみません、一つ説明不足でした。
以前、同様なシートモジュールを教えていただいたのですが、
それを「すでに出来上がったマクロ」の上にはりつけたところ、駄目でした。
「並べ替え」のマクロボタンを押してからの分岐にしたいので、
できれば、シートモジュールではなく、
すでに出来上がっている「並べ替えマクロ」の上部に 挿入する形のものを教えていただければありがたいです…。
どうぞ、よろしくお願いいたします!
No.1
- 回答日時:
こんにちは!
>並べ替えマクロはできていますが・・・
というコトなので、
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row < 10 Then
MsgBox "顧客情報、データ内のどこかをクリックして下さい", vbCritical
Exit Sub
Else
'並び替えのマクロ
End If
End Sub
といった感じではどうでしょうか?m(_ _)m
この回答への補足
早速のご回答をありがとうございます。
それで…すみません、一つ説明不足でした。
以前、同様なシートモジュールを教えていただいたのですが、
それを「すでに出来上がったマクロ」の上にはりつけたところ、駄目でした。
「並べ替え」のマクロボタンを押してからの分岐にしたいので、
できれば、シートモジュールではなく、
すでに出来上がっている「並べ替えマクロ」の上部に 挿入する形のものを教えていただければありがたいです…。
どうぞ、よろしくお願いいたします!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2007で、太字にした行のみ...
-
条件に応じて特定の行を非表示...
-
Excel2007 セルを右方向に削除...
-
「マクロ」の足し算の式を教え...
-
Excel 2013 文字列内の文字重複...
-
Excelでセル内の数式は残し値だ...
-
エクセルで全ての数字間にカン...
-
Excel(VBA)データ入力に応じて...
-
エクセル VBA 小数点を含む数字...
-
エクセルで、行ごとの並び替え...
-
フォルダ内の全てのExcelファイ...
-
Excelで連続印刷をするマクロ
-
エクセルの複数シートの保護を...
-
複数のシートの同じセルに入力...
-
EXCEL:同じセルへどんどん足し...
-
複数シートの特定の位置に連番...
-
Excelのシートを、まとめて表示...
-
別シート参照のセルをシート毎...
-
Accessのスプレッドシートエク...
-
Excel、同じフォルダ内のExcel...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excel2007で、太字にした行のみ...
-
Excelでセル内の数式は残し値だ...
-
「マクロ」の足し算の式を教え...
-
Excelで連続印刷をするマクロ
-
エクセル VBA 小数点を含む数字...
-
Excel(VBA)データ入力に応じて...
-
値貼り付けをしても書式も貼り...
-
エクセルで全ての数字間にカン...
-
Excel にて非表示行を探すワー...
-
Excel2007 セルを右方向に削除...
-
wordのvbaでハイパーリンク設定...
-
並べ替えのマクロで対象行の範...
-
エクセルで、行ごとの並び替え...
-
Excelで周期的に列を削除する方法
-
行の入れ替えってどうするの?
-
整数行を残し小数点の行を削除...
-
Excelで更新日を自動的に入れたい
-
エクセル2003でマクロをおこな...
-
yyyy/mm/ddの日付に一括変換す...
おすすめ情報