電子書籍の厳選無料作品が豊富!

Sub 移動と削除()
Range("A1").Select
Selection.Cut Destination:=Range("E1")
Range("A1").Select
Selection.Delete Shift:=xlUp
End Sub
自動マクロで作った上記の記録があります。これをA1固定ではなくA列の指定するセルにし E1もA列で指定したセルと同じ行のE列にしたいのですが書き換える方法をおしえてください。

A 回答 (4件)

ANo3の補足を見ました。



> ありがとうございます。

そう思ったら「補足」ではなく「お礼」に書いた方が良いです。
補足ではわたしのところに通知がこないのであなたが書き込んだ追加質問をたった今まで知りませんでした。

> この中でA列と指令しているのはどこなんでしょうか?C列に変えたりB列からD列までを指定したりに変更することは可能ですか、可能な場合にはどの部分を替えたらよいのでしょうか?

If Target.Column <> 1 Then Exit Sub です。
Columnは列です。ここが1列目じゃなければマクロは終了します。

C列に変えるなら
If Target.Column <> 3 Then Exit Sub

B列からD列までを指定するなら
If Target.Column > 4 Or Target.Column < 2 Then Exit Sub

> 私の書いた自動マクロでは変更はできないのでしょうか?

指定したセルを変えることはできるでしょう?

> 回答いただいた言語の理解はできないレベルの者です。質問の程度のレベルの勉強するにはmerlionXXさんの経験上から推薦できる手段をご指示戴けるとありがたいです。

一応、ご参考のため先日のコードに解説をつけておきます。
下記でTargetとはダブルクリックしたセルのことです。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'ダブルクリックイベントマクロ
  If Target.Column <> 1 Then Exit Sub '1列目じゃなければマクロ終了
  Target.Copy Destination:=Cells(Target.Row, "E") 'Targetをコピーし同じ行のE列に貼る
  Cancel = True 'ダブルクリック状態を解除
  Target.Delete Shift:=xlUp 'Targetを削除
End Sub

本屋に行けばいくらでもエクセルVBAのテキストは売ってます。
それを読んで、試してみて、それでわからないことはここで質問すればいいんじゃないですか。
    • good
    • 0
この回答へのお礼

ご指導ありがとうございます。投稿の仕方もありがとうございます。そして御礼が遅れた事もすみませんでした。

お礼日時:2011/02/02 16:19

1. 該当のシートのタブを右クリックして、[コードの表示]。


2. 出てきた白い所に、以下のコードを貼付けます。

'********これより下**********

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Target.Column <> 1 Then Exit Sub
  Target.Copy Destination:=Cells(Target.Row, "E")
  Cancel = True
  Target.Delete Shift:=xlUp
End Sub

'********これより上**********

3.Alt+F11キーでワークシートへもどります。

これでOK

A列のお好みのセルをダブルクリックする都度、自動で実行されます。

この回答への補足

ありがとうございます。
素早くできて快適です。さらに次のことも教えていただけますか
この中でA列と指令しているのはどこなんでしょうか?C列に変えたりB列からD列までを指定したりに変更することは可能ですか、可能な場合にはどの部分を替えたらよいのでしょうか?
自動マクロの記録まではできるようになったのでこれを任意のセル選択で実行するように変更する方法を知りたかったのですが私の書いた自動マクロでは変更はできないのでしょうか?回答いただいた言語の理解はできないレベルの者です。質問の程度のレベルの勉強するにはmerlionXXさんの経験上から推薦できる手段をご指示戴けるとありがたいです。

補足日時:2011/01/19 12:11
    • good
    • 0

行だけ指定したい場合は



Dim Select_Row As String

Select_Row = InputBox("行の指定", "行の指定")
Range("A" & Select_Row).Select
Selection.Cut Destination:=Range("E" & Selection.Row)
Range("A" & Select_Row).Select
Selection.Delete Shift:=xlUp

にしてください。

この回答への補足

ご指導ありがとうございます。
InputBoxに入力せずにマウスポインターで指定行をクリックして行えるようにはできませんでしょうか。

補足日時:2011/01/18 23:13
    • good
    • 0

たとえば



Sub 移動と削除()

Dim Select_Range As String

Select_Range = InputBox("セルの指定", "セルの指定")
Range(Select_Range).Select
Selection.Cut Destination:=Range("E" & Selection.Row)
Range(Select_Range).Select
Selection.Delete Shift:=xlUp

End Sub

こんな感じですが、入力したデータが不正なときのエラー処理はしていませんので、その部分は適宜作成してください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!