No.2ベストアンサー
- 回答日時:
>「0」という表示があると、エラー400になりました。
空白で考えてしまいましたが0はResize(0)でダメですね
>実行する前に、「0」を消す・非表示などにすれば
実行条件を検討してみてください
セル値が数値であり1以上にする場合の例
If IsNumeric(Cells(i, 1)) And Cells(i, 1) >= 1 Then
Cells(i, 1).Offset(1).Resize(Int(Cells(i, 1))).EntireRow.Insert
End If
Intは小数であった場合の整数部分で挿入行数にしています
他に考えられるエラーもありますので 検証条件を加えるか
Excelの仕様範囲の数値で使う必要があります
No.5
- 回答日時:
#1#2です
検証およびお礼ありがとうございます
初めてのご質問者でしたので回答へのレスがあるかわからなかったので
説明抜きで回答しました。失礼しました
>A列の数字を上から確認して、値があるとき、その値分の空白の行を挿入したいです。
#1の回答はご質問手順(上から)に沿った回答ではありません
もし、手順のように処理を進めると 一例として
Sub test2()
Dim lastRow As Long, n As Long
Do
n = n + 1
With ActiveSheet.Cells(n, 1)
If IsNumeric(.Value) And .Value >= 1 Then
.Offset(1).Resize(.Value).EntireRow.Insert
n = n + .Value
End If
End With
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Loop Until n > lastRow
End Sub
のような感じになります
繰り返し処理によるExcelシートの行列挿入(削除)は基本的には#1のように最終行(最右列)より上部(左)に処理を行います
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
これにより追加(削除)で変化する処理行および最終行(最右列)に対応します
ここが躓きポイントだと思います
上の処理では変化する最終行を繰り返し処理の度に取得して繰り返し処理の継続判断をしています
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Loop Until n > lastRow
また挿入による処理行の変化を挿入後にカウント変数に挿入数を加え代入して次の処理行特定しています
n = n + .Value
上から処理ですとどうしても処理が増えてしまいますね
メイン処理の行の挿入については他の方も回答されているので割愛しますが
Rows().Insert や EntireRow.Insertで調べてみて下さい
併せてOffsetプロパティとResizeプロパティも調べて理解されると
使い勝手が増え良いと思います
No.4
- 回答日時:
No.3 改訂 もっと簡単に
Dim WS As Worksheet
Set WS = ActiveSheet
ENDR = WS.Range("A65536").End(xlUp).Row
For i = ENDR To 1 Step -1
If IsNumeric(WS.Range("A" & i).Value) And WS.Range("A" & i).Value >= 1 Then
n = WS.Range("A" & i).Value
Rows(i + 1 & ":" & i + n).Insert
End If
Next i
No.3
- 回答日時:
ここは半角スペースで字下げ出来ないので、全角スペースで字下げしてます。
Dim WS As Worksheet
Set WS = ActiveSheet
ENDR = WS.Range("A65536").End(xlUp).Row
For i = ENDR To 1 Step -1
If IsNumeric(WS.Range("A" & i).Value) And WS.Range("A" & i).Value >= 1 Then
n = WS.Range("A" & i).Value
For j = 1 To n
Rows(i + 1).Insert
Next j
End If
Next i
No.1
- 回答日時:
ざっくり 一例コードだけです
Sub test()
Dim i As Long
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If IsNumeric(Cells(i, 1)) And Cells(i, 1) <> "" Then
Cells(i, 1).Offset(1).Resize(Cells(i, 1)).EntireRow.Insert
End If
Next
End Sub
ありがとうございます。
検証したところ、「0」という表示があると、エラー400になりました。
「0」を消したら、問題なく実行できました。
実行する前に、「0」を消す・非表示などにすれば、大丈夫です。
大変助かりました。感謝の気持ちでいっぱいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
コンビニでおにぎりを買うときのスタメンはどの具?
コンビニでおにぎりを買うとき、何の具材を選ぶことが多いですか?
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
【お題】追い込まれた犯人が咄嗟に言った一言とは?
-
Excelで、あるセルの値に応じて行を自動挿入したい
Visual Basic(VBA)
-
特定文字のある行の前に空白行を挿入したい
その他(Microsoft Office)
-
特定の条件の時に行を挿入したい
Excel(エクセル)
-
-
4
エクセル マクロで数値が変った時行挿入できますか
Excel(エクセル)
-
5
特定の文字を条件に行挿入とそこからセルデータを追加するVBAについて
Visual Basic(VBA)
-
6
Excelで一行おきに2行の空白行を挿入したい
その他(Microsoft Office)
-
7
■VBAで条件による行挿入方法
Visual Basic(VBA)
-
8
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
9
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
10
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
11
エクセルVBAで、ある指定した文字を含む行だけを選択したいのですが、、 例えば、1〜20行目までに"13671478"
Excel(エクセル)
-
12
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
13
エクセルの空白セルへコピーするマクロをくむ方法
Excel(エクセル)
-
14
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
15
VBA 空白行に転記する
Visual Basic(VBA)
-
16
VBAで検索して指定の位置に行を挿入したい
Visual Basic(VBA)
-
17
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
18
VBAで特定の文字を探して隣のセルに色を付けたい
Excel(エクセル)
-
19
EXCEL VBA で指定した範囲に入力があるかどうか?
Visual Basic(VBA)
-
20
VBA:セルの空白を検索
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで文字が混じった数字...
-
エクセル(勝手に太字になる)
-
Excelで半角の文字を含むセルを...
-
2つのエクセルのデータを同じよ...
-
エクセルの項目軸を左寄せにしたい
-
エクセル 文字数 多い順 並...
-
「B列が日曜の場合」C列に/...
-
EXCELで 一桁の数値を二桁に
-
文字列に数字を含むセルを調べたい
-
エクセルで最初のスペースまで...
-
エクセル 時間帯の重複の有無
-
エクセルで一列おきに空白列を...
-
オートフィルターをかけ、#N/A...
-
エクセル ひらがなの文字を抽出
-
エクセルの表から正の数、負の...
-
エクセルの関数(日数の平均の...
-
VBAで文字列を数値に変換したい
-
Excel関数 該当する値を複数抽...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
Excelで半角の文字を含むセルを...
-
2つのエクセルのデータを同じよ...
-
エクセル 文字数 多い順 並...
-
EXCELで 一桁の数値を二桁に
-
エクセルの項目軸を左寄せにしたい
-
エクセルの表から正の数、負の...
-
エクセル(勝手に太字になる)
-
エクセルで最初のスペースまで...
-
エクセルで文字が混じった数字...
-
文字列に数字を含むセルを調べたい
-
「B列が日曜の場合」C列に/...
-
VBAで文字列を数値に変換したい
-
オートフィルターをかけ、#N/A...
-
エクセル 同じ値を探して隣の...
-
Excel、市から登録している住所...
-
エクセルで、列の空欄に隣の列...
-
【VBA】特定列に文字が入ってい...
-
エクセルの関数(日数の平均の...
おすすめ情報