• ベストアンサー

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ともちゃんと列番号が入っているように思うのですがよろしくおねがいします

質問者が選んだベストアンサー

  • ベストアンサー
noname#29107
noname#29107
回答No.1

ちょっと問題が理解しにくいです・・・・ yが、ソース中で定義されていないので、分かりにくいのですが、yを左のセルから動かしていませんか? それでしたら右のセルから動かしたら、うまくいくでしょう。 For y = 最終目的列 To 開始目的列 Step -72 のように。 あと列を文字列に変換するの必要だと思えません。 x列目で2列挿入するなら Range(Columns(x), Columns(x + 1)).Insert Shift:=xlToRight でいいと思います。

ranarana
質問者

お礼

列を文字に変換せずに範囲指定する方法を教えてくださってありがとうございます。マクロがすっきりしました。右から動かす方法もあるんですね。yは1枚目の合計欄を挿入したい列番号だったんです。質問の仕方も、マクロも回りくどくて申し訳ありませんでした。助かりました。ありがとうございました。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

Selection.Insert Shift:=xlShiftToRight にしてみて下さい。

ranarana
質問者

お礼

ありがとうございます。現象は変わりませんでしたが、挿入処理をする対象の列が1列ずれていたことが原因だったみたいでなんとか動きました。

関連するQ&A