• ベストアンサー

エクセルについて

officeXPを使っています。 エクセルでシートを70枚位選択して、同時にB列への列挿入を行おうとするとエクセルが落ちます。 他のバージョン(2007)でも同じ現象が起こってしまうのですが、シートの選択量が多いと 落ちてしまうのでしょうか。 落ちない方法はありませんでしょうか。 何卒宜しくお願い致します。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

Sub test01() For Each ws In Worksheets ws.Columns("B:B").Insert Shift:=xlToRight Next End Sub 70枚をいちいち手でやるのは大変そうなのでVBAでやってみました。 以下の手順をお試しください。 1.Altキー+F11キーでVisualBasicEditorを呼び出します。 2.メニューから挿入、標準モジュールで出てきたコードウィンド(右側の白い広い部分)に以下のコードをコピペします。 Sub B列挿入() For Each ws In Worksheets ws.Columns("B:B").Insert Shift:=xlToRight Next End Sub 3.Alt+F11キーでワークシートへもどります. 4.メニューから、ツール、マクロ、マクロで出てきたマクロ名( B列挿入)を選択して実行 これでブック内の全シートに対し70シートくらいなら瞬時に挿入します。

fineshot33
質問者

お礼

ありがとうございました。 ドンピシャで一瞬でした。助かりました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

VBAでやる場合、マクロの記録と、その修正で出来ます。 1シート分のマクロの記録は Sub Macro1() Range("B1").Select Selection.EntireColumn.Insert End Sub これをシートを変えて70回繰り返します。 下記ではシートのあるだけのもの全部に挿入します。 Sub Macro1() MsgBox Sheets.Count For i = 1 To Sheets.Count Sheets(i).Select Range("B1").Select Selection.EntireColumn.Insert Next i End Sub ーー Range("B1").Select Selection.EntireColumn.Insert は Range("B1").EntireColumn.Insert としてしまうのが良いでしょう。

fineshot33
質問者

お礼

ありがとうございました。 70回繰り返すのは大変ですね・・・。参考にさせて頂きました。

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.1

下記URLのページによると『ブックのシート 使用可能メモリに依存 (既定では 3) 』とありますので、選択するシート数を10~20程度で試してみてはどうでしょうか? 「Excel の仕様および制限」 http://office.microsoft.com/ja-jp/excel/HP100738491041.aspx#WorksheetWorkbook

fineshot33
質問者

お礼

ありがとうございました。 大変、参考になりました。