
下記のような表があって表の最終行に行を挿入したい場合にこのようなマクロを組んでみたのですが、思ったような動きをしてくれません。
アドバイスを頂けたらありがたいです。またこの場合名前の定義などを使う必要はあるのでしょうか。どうかよろしくお願いします。
A B C D E F
1 商品一覧
2 品名 売値 原価 利益
3 たい 1000 800 200
4 ひらめ 1200 800 400
5 かれい 1050 1200 -150
6 さわら 300 150 150
※ ここに行を挿入したい※
Sub 行挿入() '表の最下行に行を挿入
Dim n As Long
n = Range("商品一覧").Rows.Count
Range("商品一覧").Cells(n, 1).EntireRow.Insert
End Sub
No.8ベストアンサー
- 回答日時:
セル範囲を"商品一覧"という名前で定義されているのでしょうね?
定義されていなかったら、エラーですから...
Sub 行挿入() '表の最下行に行を挿入
Dim n As Long
n = Range("商品一覧").Rows.Count
Range("商品一覧").Cells(n, 1).EntireRow.Insert
End Sub
をそのまま使うとして、
セル"A1:A7"の範囲を"商品一覧"という名前定義したら、"A6"の下("A7"のところ)に一行入りました。
上記の定義範囲は、セル範囲が、A列の1行~7行なので...
それをカウントすると、n = 7 です。
なので、
> 商品一覧のすぐ下の行に挿入されてしまい求めているものができません。。
-------------------
これは、おそらく...
"A1"のみ名前定義されているので、Offset(1)しても、その下の行にしかOffsetしないので、
商品一覧のすぐ下の行に挿入されてしまうものと思われます。
("A1"のみだと、n = 1)
データの最終行に追加で挿入したいということであれば、merlionXX様、takana_様のご回答が、
ご希望のご回答のように思えますが、いかがでしょうか?
同じことをするにも、色々なやり方があるので、私も勉強になりました。
No.7
- 回答日時:
「商品一覧」の範囲は正常に指定できていますでしょうか?
n への代入後
Msgbox n として、nが正常か確認してください。(もしくはブレイクポイントとか使って)
例の場合なら1~6行目の6か、2~6行目の5ですよね?
それと、Cells(n, 1)ではなくCells(n+1, 1)ではありませんか?
Cells(n, 1)だと、さわらの上に行が挿入されそうな…?
No.6
- 回答日時:
merlionXXさんも書かれているとおり、Range("商品一覧")の商品一覧の意味がわからないのですが、
6の下に1行追加するだけなら以下のマクロで出来ると思います。
Sub 行挿入() '表の最下行に行を挿入
With Range("A1").CurrentRegion
.Rows(.Rows.Count + 1).EntireRow.Insert
End With
End Sub
No.5
- 回答日時:
おっしゃることがよく理解できないのですが、お書きのデータの最下行(さわら)の下に行を挿入するのですか?
ということは、この表の下の方にもまだ何らかの入力されたセルがあるのですね?
そうでなければこの行の挿入はまったく無意味ですから。
そうだとしたら、end(xlUp)で下から探せませんので上から探すことになります。
表がA1から連続しているものとして
Cells(1, 1).End(xlDown).Offset(1).EntireRow.Insert
でいかがでしょうか?
あるいは、想像ですが、現在の表の範囲設定してある"商品一覧"という名前定義の範囲を一行下まで拡張したいという意味なのでしょうか?
だとしたら
Sub test01()
With Range("商品一覧")
Set myRng = .Resize(.Rows.Count + 1)
ActiveWorkbook.Names.Add Name:="商品一覧", RefersTo:=myRng
End With
End Sub
でどうでしょうか?
No.4
- 回答日時:
>またこの場合名前の定義などを使う必要はあるのでしょうか。
お示しの表内で「商品一覧」の範囲を
=Sheet1!$A$1:$D$6
としていらっしゃると存じますので、「6 さわら 300 150 150」の次の空白行も含めて
=Sheet1!$A$1:$D$7
として、「Sub 行挿入() '表の最下行に行を挿入」はそのままでお試しになってみてください。
No.3
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
先着1,000名様に1,000円分もらえる!
教えて!gooから感謝をこめて電子書籍1,000円分プレゼント
-
EXCEL 最終行に行を挿入(追加)する方法
Excel(エクセル)
-
VBA 最終行に10行、行を挿入する作業。
その他(Microsoft Office)
-
エクセル最終行の下に貼り付け
Excel(エクセル)
-
4
VBA別シートの最終行の下行へ貼り付けされるようにしたいです。
その他(Microsoft Office)
-
5
Excelの最終行に上行書式などをコピーして一行追加するには
Excel(エクセル)
-
6
ExcelのVBAで最終行の下にコピーする方法
その他(Microsoft Office)
-
7
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
8
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
9
Excelのマクロで最下行を選択して「一行挿入する」マクロの記述を
Excel(エクセル)
-
10
excelで、セル内に文字が入力される毎に行が自動挿入される仕組みを作りたいのですが…
Excel(エクセル)
-
11
エクセル マクロ オートフィルの終点の指定について
Excel(エクセル)
-
12
Excel VBA、 別ブックの最終行セルへのコピー&値ペースト
Visual Basic(VBA)
-
13
ExcelのVBAで連番を振る。
Excel(エクセル)
-
14
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
15
VBAで複数の数式セルを最終行までコピーするには?
Excel(エクセル)
-
16
【Excel】【VBA】空白のセルに上のデータを入力する方法
その他(Microsoft Office)
-
17
【エクセル】行挿入で数式もいっしょにコピーしたい
Excel(エクセル)
-
18
エクセル マクロで数値が変った時行挿入できますか
Excel(エクセル)
-
19
Excelで、あるセルの値に応じて行を自動挿入したい
Visual Basic(VBA)
-
20
エクセル2016にて、行挿入&コピーの繰り返しをするマクロを教えてください。
Excel(エクセル)
関連するQ&A
- 1 下記の様なエクセルのマクロを組んでみましたが、初心者の為、お教えください。 Sub Macro1(
- 2 エクセルの関数について教えて下さい! 表1に表2のように数字を入力すると、 表3のような様式に表4の
- 3 エクセル マクロ 範囲指定で、データの最終行・最終列を取得したい
- 4 マクロで行挿入後挿入部分を含めたソートをしたいのですが・・・
- 5 EXCELの表、組[A列]:番号[B列] を 組[A列]:番号[行]に変換する方法
- 6 エクセルの表で10行毎に1行づず新しい行を挿入する方法
- 7 最終行から上10行をコピーするマクロを教えてください。
- 8 Excelのマクロで最下行を選択して「一行挿入する」マクロの記述を
- 9 最終行が常に変わる為、 どのようにマクロを書けばよいかご教示ください。 5行目が見出しです。 6行目
- 10 マクロで自己作成したエクセル2010内の表をタブレット内に入れています。データをこの表に打ち込み、デ
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
このカテゴリの人気Q&Aランキング
-
4
DATファイルをEXCELで開きたい
-
5
エクセルの計算結果が0になって...
-
6
Excel 書式を関数で判断。
-
7
エクセルが閉じない
-
8
あるセルに特定の文字列を打つ...
-
9
エクセル: セルの枠を超えて表示
-
10
EXCELでX軸が時間のグラフを作...
-
11
Excel条件付き書式について教え...
-
12
エクセルのIF関数で、文字が...
-
13
エクセルの2ページ目の作り方
-
14
excelで1つのセルだけを分割す...
-
15
エクセル 同じ値を探して隣の...
-
16
エクセルでセルが指定できない
-
17
エクセル 表を大きく、紙いっ...
-
18
エクセルで、条件に一致した行...
-
19
Excelをpdfに変換して、パスワ...
-
20
200を超えた数値だけに10を掛け...
おすすめ情報