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で質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) エクセルの数式で教えてください。 3 2021/12/21 09:20
- Excel(エクセル) VGAを利用した画像表示について 4 2021/11/03 23:07
- Word(ワード) wordでの指定オブジェクトの削除 6 2021/12/20 00:06
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 16:07
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 17:07
- Excel(エクセル) 指定した語句と隣のセルを空欄にする 1 2023/06/18 12:54
- Visual Basic(VBA) 【Excel VBA】シートの中から特定の文字列のセル位置を取得するには? 6 2021/11/03 23:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/04 10:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
EXCELのVBAでRange("A1:C4")を...
-
一つのTeratermのマクロで複数...
-
Excel VBAからAccessマクロを実...
-
メッセージボックスのOKボタ...
-
非表示の列をすべて削除するマクロ
-
エクセルに張り付けた写真のフ...
-
エクセルで別のセルにあるふり...
-
ExcelのVBA。public変数の値が...
-
ExcelVBAでPDFを閉じるソース
-
VBA アドインについて お詳しい...
-
TERA TERMを隠す方法
-
マクロで空白セルを詰めて別シ...
-
EXCELマクロでのThisisWor...
-
サクラエディタ・マクロ → VSCo...
-
エクセルマクロ自動更新
-
[初心者です]VBAで指定列か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
エクセルで別のセルにあるふり...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
ExcelVBAでPDFを閉じるソース
-
EXCELのVBAでRange("A1:C4")を...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
マクロ実行時、ユーザーフォー...
-
Excelのマクロについて教えてく...
-
ソース内の行末に\\
おすすめ情報