- ベストアンサー
指定するセルのRange書き込み変更
Sub 移動と削除() Range("A1").Select Selection.Cut Destination:=Range("E1") Range("A1").Select Selection.Delete Shift:=xlUp End Sub 自動マクロで作った上記の記録があります。これをA1固定ではなくA列の指定するセルにし E1もA列で指定したセルと同じ行のE列にしたいのですが書き換える方法をおしえてください。
- みんなの回答 (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のテキストは売ってます。 それを読んで、試してみて、それでわからないことはここで質問すればいいんじゃないですか。
その他の回答 (3)
- merlionXX
- ベストアンサー率48% (1930/4007)
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さんの経験上から推薦できる手段をご指示戴けるとありがたいです。
- kmetu
- ベストアンサー率41% (562/1346)
行だけ指定したい場合は 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に入力せずにマウスポインターで指定行をクリックして行えるようにはできませんでしょうか。
- kmetu
- ベストアンサー率41% (562/1346)
たとえば 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 こんな感じですが、入力したデータが不正なときのエラー処理はしていませんので、その部分は適宜作成してください。
お礼
ご指導ありがとうございます。投稿の仕方もありがとうございます。そして御礼が遅れた事もすみませんでした。