- ベストアンサー
EXCELマクロの列挿入で余分に列が挿入されてしまいます。
EXCELで5セルづつ結合された表があり、決まった列数ごとに2列挿入して合計欄を作りたいのですが、手 動で2列選択してツールバーより挿入とすると2列のみ挿入されますが、マクロで2列選択して挿入se lection.insertをするとなぜか連結セル分5列選択し挿入されてしまうのですが、2列のみ挿入するには どうしたらいいのでしょうか。 For i = 72 To t Step 72 Sheets("描画表").Select 'Column(列)変換 y2 = IIf(y > 26, Chr(y \ 26 + &H40), "") & Chr(y Mod 26 + &H41) y3 = IIf((y + 1) > 26, Chr((y + 1) \ 26 + &H40), "") & Chr((y + 1) Mod 26 + &H41) Columns("" & y2 & ":" & y3 & "").Select Selection.Insert Shift:=xlToRight ローカルウィンドウでマクロのステップをチェックするとy2、y3ともちゃんと列番号が入っているように思うのですがよろしくおねがいします
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
ちょっと問題が理解しにくいです・・・・ yが、ソース中で定義されていないので、分かりにくいのですが、yを左のセルから動かしていませんか? それでしたら右のセルから動かしたら、うまくいくでしょう。 For y = 最終目的列 To 開始目的列 Step -72 のように。 あと列を文字列に変換するの必要だと思えません。 x列目で2列挿入するなら Range(Columns(x), Columns(x + 1)).Insert Shift:=xlToRight でいいと思います。
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
Selection.Insert Shift:=xlShiftToRight にしてみて下さい。
お礼
ありがとうございます。現象は変わりませんでしたが、挿入処理をする対象の列が1列ずれていたことが原因だったみたいでなんとか動きました。
お礼
列を文字に変換せずに範囲指定する方法を教えてくださってありがとうございます。マクロがすっきりしました。右から動かす方法もあるんですね。yは1枚目の合計欄を挿入したい列番号だったんです。質問の仕方も、マクロも回りくどくて申し訳ありませんでした。助かりました。ありがとうございました。