
Excel VBAで開発されたソフトの改造を行ってますが、Excel2007で動作しないマクロがあり困ってます。
<開発環境>
・WindowsXP Pro SP3
・Celeron 540(1.8GHz)
・メモリ1GB
・Excel2007 SP1 (Microsoft Office2007)
改造元ソフトはOffice2000で開発されており、Excel2007で動作するとマクロエラーが発生する処理があります。
因みにまだソフト改造はしてなく、そのままExcel2007で動作させるだけでマクロエラーが発生します。
発生する箇所はVBAで開発されており、下記のコマンドです。
Sheets(移動元シート名).Move Before:=Application.Workbooks(移動先ブック名).Sheets(1)
異常の内容は下記になります。
-------------------------------
?err.Description
移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー] コマンドと [貼り付け] コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。
?err.Number
1004
-------------------------------
移動元BOOKは1シート、移動先BOOKは1シートあります。
これをExcel2000で実行すると正常にシートが移動できます。
(移動元BOOKのシートがなくなりBOOKが終了して、移動先BOOKは2シートになります)
Excel画面の移動元シートを選択して、右クリックメニューの「移動またはコピー」で移動先ブックを指定して移動すると
「移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー] コマンドと [貼り付け] コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。」
とVBAから実行した時と同じ内容のエラーダイアログが表示されました。
(Excel2000では手動でも移動できました)
Excel2007では1シートで構成されたBOOK間の移動はできないのでしょうか?
また、これをVBAで対策しようとした場合にどうしたら良いのでしょうか?
ネットで調べましたが判らず、ここで質問させて頂きました。
判りにくい説明で申し訳ありませんが、よろしくお願いします。
No.3ベストアンサー
- 回答日時:
苦労されてるようですね、onlyromです。
先の質問同様、今回のも原因を見つけることは無理だと思われます。
それより2007で上手く動作させる方法を考えた方がいいような。。。
で、一案。
今回のは移動元BOOKが1シートゆえのエラーのようですから
移動元BOOKにダミーのシートをひとつ追加し2シートにして移動し、
移動後、移動元BOOKを保存しないでクローズしてやる
というのはどうでしょう。。。
この回答への補足
onlyromさん、ご回答ありがとうございます。
神が降臨してくれた気分です。
確かにonlyromさんの案でいけそうな感じがします。
現在、別件の緊急業務を行ってますので、それが終わりましたら試してみようと思います。
どうもありがとうございました。
結果はまたご報告します。
悪戦苦闘しましたが、結局下記の方法で逃げました。
1.作業用ブックをExcel8形式で変換保存
2.作業用ブックを閉じる
3.作業用ブックを開く
4.作業用ブックのシートを目的ブックに移動
かなり強引な方法ですが、結果が同じならと苦肉の策です。
それにしても、Excel2007は旧Excelと互換性低くてExcel2000で作成されたシステムを動作させるのにかなり苦労しました。
No.2
- 回答日時:
2007側でブックの作成時に 2003以前との同じシート構成にしていないのが原因ではないでしょうか
2007になって 列、行が拡張されたのでこれにより ご質問のようなエラーになるように思います
1シートの仕様が
2003以前は 65536行、256列まで
2007では xlsx(2007)形式だと 1048576行、16384列
といった具合に違っているためのように感じます
2007側で『Officeボタン』>『Excelのオプション』>『保存』>『ファイルの保存形式』を
『Excel 97-2003 ブック(*.xls)』に変更してから
マクロの移植操作をして見ましょう
この回答への補足
ご回答ありがとうございます。
1シートの仕様ですが、列行ともに問題ありません。
(空白のシートでも再現発生します)
>2007側で『Officeボタン』>『Excelのオプション』>『保存』>『ファイルの保存形式』を『Excel 97-2003 ブック(*.xls)』に変更してから
>マクロの移植操作をして見ましょう
試してみましたが、症状は改善できませんでした。
保存しない新規BOOKが1シートしかない場合に、そのシートを別のBOOKに移動させようとすると発生するようです。
ネットでいろいろ調べましたがお手上げ状態です。
また調べてみます。
ありがとうございました。
No.1
- 回答日時:
直接の回答ではなくて申し訳ありません。
VistaではOffice2000がサポート対象外となりました。
Vistaと同世代とかんがえられるOffice2007でも
同様の事がおきているのではないでしょうか?
2000と2007のマクロの互換性を調べるツールが
あるようですので参考になりましたら。
参考URL:http://office.microsoft.com/ja-jp/excel/HA100775 …
この回答への補足
ご回答ありがとうございます。
参考URLを参考にして互換チェックしようとしたら、Excelの互換チェックするメニューが選択不可で悪戦苦闘してます。
(Office2007は旧バージョンから変わりすぎて嫌いです)
現行のVBAで作られたソフトをExcel2007で動作させないといけないのですが、代替手段があればと思い試行錯誤してます。
再現パターンがわかりました。
1.ブックAを作成してシートを1つにして保存する。
2.ブックAから新規作成で新規ブックを作成する(新規ブックは保存しない)
3.新規ブックのシートを1つにする(Sheet2,Sheet3を削除)
4.新規ブックのSheet1を選択して右クリックニューで「移動またはコピー」でSheet1をブックAに移動
5.移動に失敗する(異常ダイアログが表示される)
VBAからでも、これと同じ手順で移動してます。
これが解決できればVBAで移動できない件も解決できそうです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Excel(エクセル) エクセルでシートを別のブックにコピーや移動する際に出るエラーのような窓を回避するには? 1 2023/06/05 21:51
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Excel(エクセル) 複数のExcelブックのシート1の内容を1つのExcelブックにコピー貼り付けたいのでvbaコードを 7 2023/02/10 23:20
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
エクセルVBAが途中で止まります
-
VBA 別ブックからコピペしたい...
-
VBAで別のブックにシートをコピ...
-
VBSでExcelのオープン確認
-
【Excel VBA】書き込み先ブック...
-
ワイルドカード「*」を使うとう...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBA コードを実行すると画面が...
-
現在開いているbook全てを対象...
-
Excelのマクロコードについて教...
-
エクセルVBAで書式と値の貼付け...
-
VBA 複数のブックに同じ列を表...
-
Excelマクロ 該当する値の行番...
-
VBA 二つのブックをうまく扱え...
-
ダイアログボックスのpathの指...
-
Excel2007でBOOK間のシート移動...
-
[Excel]ADODBでNull変換されて...
-
VBA ブックを開かずにブック内...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ブックをダイアログボックス...
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
VBA 別ブックからコピペしたい...
-
ワイルドカード「*」を使うとう...
-
VBAで別のブックにシートをコピ...
-
VBA コードを実行すると画面が...
-
【Excel VBA】書き込み先ブック...
-
Excelマクロ 該当する値の行番...
-
[Excel]ADODBでNull変換されて...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】インデックスが有...
-
VBAで複数のブックを開かずに処...
-
【ExcelVBA】zip圧縮されたCSV...
-
【VBA】全シートの計算式を全て...
-
エクセルのマクロを使ってメー...
-
VBS Bookを閉じるコード
-
ユーザーフォームの切り替えに...
-
Excelのマクロコードについて教...
-
Excel2007VBAファイルの表示に...
おすすめ情報