アプリ版:「スタンプのみでお礼する」機能のリリースについて

excel2007にてVBA処理を行っています。

vbaにて
新規ワークブックを作成
最初に開いているワークブックのシートを、新規ワークブックへコピー

この作業を行っているのですが、実行時に

---
移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー] コマンドと [貼り付け] コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。
---

このエラーが表示されます。
保存拡張子も「.xls」から「.xlsx」へ変更するも、互換モードの表示が外れません。
さらに原因を探ると、現在使っているPCのエクセルにて

エクセルオプション→保存→ファイルの保存形式

この設定が「excel ブック」ではなく、「excel 97-2003ブック」のため、
新規ワークブック作成時に互換モードでファイルが作成されてしまうことで、2003と2007の行列数の違いからエラーになるようです。
確認のため、ファイル保存形式を2007仕様にすると、問題なく実行されました。


新旧のPCが混在するため、できたらファイル保存形式を97-2003モードで保持したまま、vbaでの新規ワークブックの作成は互換モードを外した状態で行いたいのですが、背景の色など、2007での特色があるため、2003形式には戻したくないのが心情です。

解決する方法はありますでしょうか?よろしくお願いします。

A 回答 (1件)

例示のようなエラーメッセージがでるなら、シートをコピーするのではなく、以下のようにシートのセル範囲(A1セルから使用されているセル範囲まで)を新規ブックにコピー貼り付けしてはいかがでしょう。



Range("A1", ActiveCell.SpecialCells(xlLastCell)).Copy
Workbooks.Add
ActiveSheet.Paste
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!