- ベストアンサー
エクセルについて
officeXPを使っています。 エクセルでシートを70枚位選択して、同時にB列への列挿入を行おうとするとエクセルが落ちます。 他のバージョン(2007)でも同じ現象が起こってしまうのですが、シートの選択量が多いと 落ちてしまうのでしょうか。 落ちない方法はありませんでしょうか。 何卒宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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シートくらいなら瞬時に挿入します。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
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 としてしまうのが良いでしょう。
お礼
ありがとうございました。 70回繰り返すのは大変ですね・・・。参考にさせて頂きました。
- koko88okok
- ベストアンサー率58% (3839/6543)
下記URLのページによると『ブックのシート 使用可能メモリに依存 (既定では 3) 』とありますので、選択するシート数を10~20程度で試してみてはどうでしょうか? 「Excel の仕様および制限」 http://office.microsoft.com/ja-jp/excel/HP100738491041.aspx#WorksheetWorkbook
お礼
ありがとうございました。 大変、参考になりました。
お礼
ありがとうございました。 ドンピシャで一瞬でした。助かりました。