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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の条件に合致したセルを別のブックに貼り付け 1 2021/12/11 13:54
- Visual Basic(VBA) エクセルVBAで『A列』に新規で数値を入力し『B列』から右方向の空白セルにその値を貼り付ける方法 4 2022/11/05 08:37
- Excel(エクセル) マクロ VBAを教えてください。 4 2021/12/14 14:07
- Visual Basic(VBA) Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです 2 2023/03/05 02:44
- 数学 失礼します。行列についての質問です。ある行列A 0 1 0 ( 0 0 1 ) の固有値を求め、対角 2 2021/12/18 09:23
- Visual Basic(VBA) Excelで、マウスで範囲を選択した列文字を選択した列の左の列に結合させるVBAをご教授願います 1 2022/02/05 09:24
- Excel(エクセル) マクロを修正できないものか、統合シートについて 3 2021/12/07 09:26
- Excel(エクセル) 列の複数ある空白セルを飛ばして、セルに並べて表示したい 3 2023/02/12 16:49
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Visual Basic(VBA) エクセルのマクロを教えてください 4 2022/02/04 08:05
このQ&Aを見た人はこんなQ&Aも見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
エクセルで⑤番の操作が分かりません。どういう関数が良いんですか?
Excel(エクセル)
-
Excel 書式のクリア・値貼付けをしても書式が変わらない
Excel(エクセル)
-
Excel VBAについて【図形を組み合わせて作成した、料金別納表示の削除の仕方】
Excel(エクセル)
-
-
4
Excel VBAでの数値の計算についておしえてください
Visual Basic(VBA)
-
5
Excelの同じ数値に記号をつけたい
Excel(エクセル)
-
6
重複や複数条件でのカウント教えて下さい。
Excel(エクセル)
-
7
エクセルのハイパーリンクで質問です。
Excel(エクセル)
-
8
Excelのカレンダーを作成しようと思っているのですがうまくいきません
Excel(エクセル)
-
9
エクセルで、複数のマスに構文を一度に入力する方法を教えてください
Excel(エクセル)
-
10
エクセル関数またはVBAについて
Excel(エクセル)
-
11
COUNTIFSを使って、ある条件欄で、2以上3未満としたいのですが、どうすればよいですか?
Excel(エクセル)
-
12
ご教示のほどお願いします。 Excelで管理表を作成してまして、関数式を教えてください。 添付した写
Excel(エクセル)
-
13
Excel 大なり小なりを表すとき、 例えば「10以上」なら、>=10 と表せますが、 この10の部
Excel(エクセル)
-
14
データから単位文字を除去して計算する方法は?
Excel(エクセル)
-
15
エラー表示になってしまいます。
Excel(エクセル)
-
16
Excel マクロについて
Visual Basic(VBA)
-
17
エクセルで【0.5日と1日】を表示したいのですが。。。
Excel(エクセル)
-
18
エクセルの行を巾を変えずに増やす方法
Excel(エクセル)
-
19
エクセルの関数でわからないことあるのでコード付きで教えてください
Excel(エクセル)
-
20
エクセルのcountifのワイルドカードについて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
2つのエクセルのデータを同じよ...
-
エクセル 文字数 多い順 並...
-
エクセルで最初のスペースまで...
-
VBAで文字列を数値に変換したい
-
エクセルの表から正の数、負の...
-
エクセル 同じ値を探して隣の...
-
Excel、市から登録している住所...
-
エクセルで文字が混じった数字...
-
文字列に数字を含むセルを調べたい
-
Excelで半角の文字を含むセルを...
-
エクセル(勝手に太字になる)
-
EXCELで 一桁の数値を二桁に
-
Excelの行、列の左方向シフト、...
-
エクセルの項目軸を左寄せにしたい
-
B列の値がA列にあるかを調べる関数
-
VBA 連続行データを5行ずつ隣の...
-
エクセルVBA、別ブックへ転記す...
-
エクセルの並び変えで、空白セ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
2つのエクセルのデータを同じよ...
-
エクセルで最初のスペースまで...
-
エクセルVBA、別ブックへ転記す...
-
エクセル 文字数 多い順 並...
-
エクセル(勝手に太字になる)
-
VBAで文字列を数値に変換したい
-
エクセルで文字が混じった数字...
-
エクセルの表から正の数、負の...
-
「B列が日曜の場合」C列に/...
-
Excelで半角の文字を含むセルを...
-
エクセルの並び変えで、空白セ...
-
Excel、市から登録している住所...
-
エクセル 同じ値を探して隣の...
-
EXCELで 一桁の数値を二桁に
-
エクセル初心者です 関数の入れ...
-
A列がない・・・A列が非表示に...
-
オートフィルターをかけ、#N/A...
-
エクセルで、列の空欄に隣の列...
おすすめ情報