アプリ版:「スタンプのみでお礼する」機能のリリースについて

シート1から範囲を指定してコピーしたあと22行目にコピーしたセルの挿入を行っているのですが、
オプション1・7を行った後31・1・7を実行すると1・7の上に31・1・7が挿入されてしまいます。

1・7の後の行に31・1・7を挿入するにはどうしたらいいでしょうか?

Private Sub CommandButton1_Click()
If OptionButton7.Value = True Then
Sheets("Sheet1").Select
ActiveWindow.SmallScroll Down:=9
Rows("43:58").Select
Selection.Copy
Sheets("Sheet2").Select
ActiveWindow.SmallScroll Down:=12
Rows("22:22").Select
Selection.Insert Shift:=xlDown
ActiveWindow.SmallScroll Down:=-21
Range("P3").Select
End If
If OptionButton1.Value = True Then
ActiveWindow.SmallScroll Down:=15
Sheets("Sheet1").Select
ActiveWindow.SmallScroll Down:=-39
Rows("4:39").Select
Selection.Copy
Sheets("Sheet1").Select
ActiveWindow.SmallScroll Down:=-3
Sheets("Sheet2").Select
Rows("22:63").Select
ActiveWindow.SmallScroll Down:=-42
Rows("22:22").Select
Selection.Insert Shift:=xlDown
ActiveWindow.SmallScroll Down:=-21
Range("P3").Select
End If
End Sub

A 回答 (3件)

No.1の者です。



全体的な情報がなく、イマイチ分からない点が幾つかあるのですが。
Sheet2には、【車両情報】が沢山あって、新しいものは、一番上に必要?

>おしゃっていた通り最後に実施したマクロが一番上に来てしまう
>1・7の後の行に31・1・7
逆に、7→1→31→7→1の順に処理するとかではダメなのでしょうか?
若しくは、一番下に追加するなら、下記の様にすれば、A列で文字が入って
いないセルを選択する事ができます。

Cells(Rows.Count, 1).End(xlUp).Offset(1).Select
(A列で、下からみて文字が入っているセルを探す、オフセットで、その1つ
下のセルを選ぶ。) 2にすれば、空白行を1行入れたその下とか。
そこに、貼り付けするとか?
https://www.moug.net/tech/exvba/0050088.html
    • good
    • 0

こんにちは


ご質問の内容が良く分かりませんが、

ここは記録ミス?
Sheets("Sheet2").Select
Rows("22:63").Select
ActiveWindow.SmallScroll Down:=-42
Rows("22:22").Select
Selection.Insert Shift:=xlDown

例:
If OptionButton7.Value = True Then
Sheets("Sheet1").Rows("43:58").Copy
Sheets("Sheet2").Rows("22:22").Insert Shift:=xlDown
Application.CutCopyMode = False
Range("P3").Select
End If

挿入する位置が必ず22行目なら
Sheets("Sheet2").Rows("22:22").Insert Shift:=xlDown で良いけれど
変わるのであれば、挿入位置を(キーワードなどで)特定する必要があると思います。
    • good
    • 0

こんにちは。



シートがどうなって、とかの説明がないので、回答が難しいです。
あと、質問の意味も良く分かりません。
>オプション1・7を行った後31・1・7を実行すると1・7の上に31・1・7が挿入されてしまいます。
1・7の後の行に31・1・7を挿入するにはどうしたらいいでしょうか?
→Sheet2の22行に挿入しているだけの様なので、最後に実施したマクロが
一番上にくるのは普通だと思うのですが。

オプション1・7を行った後31・1・7を実行すると

最期
7
1
31
7
1
最初

オプション:オプションボタンのチェックが入った処理を指していると
思って良いでしょうか?
31は、どの様な処理なのでしょうか?

オプション1:
Sheet1の4:39行をコピーして、Sheet2の22行に挿入している

オプション7:
Sheet1の43:58行をコピーして、Sheet2の22行に挿入している

オプション31:
Sheet1の○○行をコピーして、Sheet2の22行に挿入している?


ActiveWindow.SmallScroll Down~ は、スクロールする処理なので、
セルのコピーとは、挿入では不要なので、全て消した方が良いかと。
その方が、コードもスッキリするかと。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
説明が下手で申し訳ない。

オプション31は区切りの表記になります。

作りたいのは
【車両情報】1
車の名前 ←オプション1
車の名前2←オプション7

【車両情報】2←オプション31
車の名前1
車の名前2

上記の順番になるようにしたかったのですが、おしゃっていた通り最後に実施したマクロが一番上に来てしまうので【車両情報】1の下に車両情報2が挿入できる方法を探していました。

お礼日時:2021/12/27 15:30

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