|
▼マクロマン さん:
>選択した後何をするのでしょうか?
>場合によっては、選択する必要が無いかもしれません。
マクロマンさん>
ご返信ありがとうございます。
それでは、もう少し先の目的も書かせて頂きたいと思います。
オリジナルのメニューを作成して、アドインとして作成したいと思っております。
その内容は、
・現在選択しているセル(C3,C4とする)を含む行全体を削除する
・処理後、現在選択しているセルと同じ場所を選択しているようにする
というものです。
この時、A2,A3が結合されていると、2〜4行目全てが削除されることのないようにしたいと思っております。
行番号をマウスでクリックして3,4行目を選択して削除すれば、A2,A3の結合が解除されて、3,4行目のみが削除されると思いますが、それと同じことを行いたいと思っております。
以下は、私が組んだマクロです。
全くもってスマートなコードではないので申し訳ないのですが、
ご参考に解決策を頂けるとありがたいです。
↓
Sub 選択している行全体を削除()
'変数定義
Dim seru As Variant
Dim minRow As Variant
Dim maxRow As Variant
Dim nowColumn As Variant
Dim i As Integer
'初期値代入
minRow = Selection.Row
maxRow = Selection.Row
nowColumn = Selection.Column
'選択されているセルの範囲を求める
For Each seru In Selection
maxRow = seru.Row
Next
'maxRow = maxRow - 1
'選択されているセルの行全体を選択する
Range(minRow & ":" & maxRow).Select
'選択の中心を元に戻す
For i = 1 To nowColumn - 1
Application.SendKeys ("{Tab}")
Next
'
'Alt+E+Dのコマンドを送る(これで行の削除を実行)
Application.SendKeys ("%ED")
'セルの選択を一つにする
If Selection.Row = 1 Then
Application.SendKeys ("{Up}") '1行目を選択している時は上をクリックしても移動しないのでこれでOK
Else
Application.SendKeys ("{Up}{Down}") 'それ以外は、上・下とクリックする
End If
End Sub
|
|