
excelマクロ(VBA)について質問です。マクロにて指定したセルを挿入・削除したいのですが、挿入・削除するセルの場所ついては、別のセルで指定したいのです。具体的には以下のような感じです。
A B C D
1 □
2 □
3 氏名
4 No 太郎
5 1 次郎
6 2 三郎
7 3 四郎
8 4 トメ
9 5 ハジメ
A1にて挿入する場所を、B1にて削除する場所を指定したいです。例えば四郎の後ろにセルを挿入してトメの上に五郎と入れたい場合A1にて(挿入したいNo)4を指定・実行するとトメがNo5(B9セル)にずれるといった具合です。削除の場合もB1で4を指定するとトメが削除され、No4(B8)にハジメが上がるという感じです。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
VBAをどれほど、WEB照会したり、マクロの記録を採って勉強して質問しているのか。
Googleででも「VBA 行削除」「VBA 行挿入」で照会したのか。マクロの記録を採って考えたか。
またA1などの指定が4と指定するのか、「A9」と指定すするのか書くべき。
Sub test04()
Rows(Range("A1") + 3).EntireRow.Delete
End Sub
は全行を削除。
ーー
番号も残すなら(B-F列等を削除して上へつめるなら)。(最初に質問に書くこと)
マクロの記録をやってみること。
マクロ記録では
Sub Macro4()
Range("B8:D8").Select
Selection.Delete Shift:=xlUp
End Sub
それを修正して
Sub Macro5()
Set sh1 = Worksheets("Sheet1")
MsgBox sh1.Range("A1") + 4
sh1.Range("B" & (sh1.Range("A1") + 4) & ":D" & (sh1.Range("A1") + 4)).Select
Selection.Delete Shift:=xlUp
End Sub
ーー
Sub Macro6()
Range("B" & (Range("A1") + 4) & ":D" & (Range("A1") + 4)).Select
Selection.Delete Shift:=xlUp
End Sub
でも良いようだ。
最終行の番号は残したまま。消すなら消せるが。
ーーー
行挿入
マクロの記録では
Sub Macro7()
Selection.Insert Shift:=xlDown
End Sub
範囲を指定して
Sub Macro7()
Range("B" & (Range("A1") + 4) & ":D" & (Range("A1") + 4)).Select
Selection.Insert Shift:=xlDown
End Sub
最終行の番号を付け加えるなら、最終行に次の行に(やり方がわからなければ、Googleで「エクセルVBA 最終行 取得」で照会のこと)、A列最大番号+1をセット。
No.3
- 回答日時:
A5が1になるのでしたら
A5に
=ROW()-4
として以下必要なだけ下にフィルしてください。
ROW()は行番号を返しますのでご自身の環境に合わせてマイナスの数値を変更してください。
削除はコードの変更は必要ありません
挿入は以下のように変更してください
Set c = Range("A4:A" & Range("A" & Rows.Count).End(xlUp).Row).Find(Range("A1").Value, LookIn:=xlValues)
mRow = c.Row
Rows(mRow).Insert Shift:=xlDown
Range("A" & mRow).Formula = "=ROW()-4"
No.1
- 回答日時:
削除(B1に指定)
Set c = Range("A4:A" & Range("A" & Rows.Count).End(xlUp).Row).Find(Range("B1").Value, LookIn:=xlValues)
mRow = c.Row
Rows(mRow).Delete Shift:=xlUp
挿入(A1に指定)
Set c = Range("A4:A" & Range("A" & Rows.Count).End(xlUp).Row).Find(Range("A1").Value, LookIn:=xlValues)
mRow = c.Row
Rows(mRow).Insert Shift:=xlDown
ありがとうございます。
一点、質問に対して補足させてください。
挿入・削除どちらをしてもA列のNoは変更しないようにしたいのです。
つまり、A1にて(挿入したいNo)4を指定・実行すると
四郎の後ろにセル(B8とC8)が挿入されますが、A列には変化がないといった具合です。
削除の場合も同様で、A1にて(削除したいNo)4を指定・実行すると
A列はそのままで、削除されるのはB8とC8セルということです。
質問が雑でわかりにくく恐縮ですが何とぞ、よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
UWLSの記録でマクロを作成し使...
-
Excel マクロ VBA プロシー...
-
Excel_マクロ_現在開いているシ...
-
Excel マクロでShearePoint先の...
-
TERA TERMを隠す方法
-
Excel・Word リサーチ機能を無...
-
「マクロの記録」で作成したマ...
-
ExcelのVBA。public変数の値が...
-
ExcelVBAでPDFを閉じるソース
-
VBAを使ってエクセルを秀丸にコ...
-
OnTimeを使ったのですが「エラ...
-
既存のマクロをコンボボックス...
-
エクセルマクロでワードの一ペ...
-
特定文字のある行の前に空白行...
-
エクセルで別のセルにあるふり...
-
エクセルで縦に並んだデータを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
メッセージボックスのOKボタ...
-
Excel_マクロ_現在開いているシ...
-
一つのTeratermのマクロで複数...
-
マクロの連続印刷が突然不可能...
-
ExcelのVBA。public変数の値が...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
エクセルに張り付けた写真のフ...
-
Excelのセル値に基づいて図形の...
-
TERA TERMを隠す方法
-
マクロ実行時エラー
-
ExcelVBAでPDFを閉じるソース
-
wordを起動した際に特定のペー...
-
特定文字のある行の前に空白行...
-
Excel マクロでShearePoint先の...
-
エクセルで縦に並んだデータを...
-
マクロ実行時、ユーザーフォー...
-
ソース内の行末に\\
おすすめ情報