• ベストアンサー

新旧エクセル、マクロは互換不可?

  私は、古いバージョンのエクセルを使っています。 マクロを組んでいるのですが、 そのエクセルシートを、他の人が開けません。 原因は、その人のエクセルが新しいものだからです。(私のが古いから・・・)   これは、どのように解決したらよいでしょうか? 新しく・・組み直すしかないのでしょうか? (マクロの式をコピーして、その「新バージョンエクセル」のVBAで地道に貼り付け作業を行うとか・・・?) もしも、楽な方法があれば助かると思いました。 ・・どうぞ、よろしくお願いいたします!  

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

  • ベストアンサー
  • Turbo415
  • ベストアンサー率26% (2631/9774)
回答No.2

追加です。 参考までにURLを貼っておきます。 同じ現象かどうかは分かりませんが。 http://yasuda-style.blogspot.jp/2011/03/xlsexcel2010.html

penichi
質問者

お礼

 このへんが、かなり怪しいので、  先方に直接聞いてみます。  ご回答、どうもありがとうございました!

その他の回答 (3)

回答No.4

[.xls]ブックでも、新しいバージョンの方で互換性を意識した動作となるよう、マクロ自体の改変が必要になるケース。 Excel2003以前のバージョンで作成したマクロを、Excel2007以降のバージョンで実行する場合の注意点 「マクロから新しいブックを作成すると、作成したブックが正常に開けない」 加藤 (2011年5月20日 18:00) http://www.ilovex.co.jp/blog/system/projectandsystemdevelopment/excel2003excel2007.html <<以下、抜粋>> まず、マクロを実行しているExcelのバージョンを判定します。 その結果により、Excel2007以降のバージョンでマクロが実行されていた場合は、Excel97-2003形式で新しいブックを保存するようにしました。 そうすることにより、Excel2003以前のバージョンでも、Excel2007以降のバージョンでも正常に新しいブックを作成することが出来るようになります。 実装例を以下に記載しておきます。 view plaincopy to clipboardprint? 01.Dim loCreateWorkbook As Workbook 02. 03.'// 新たなブックを作成する 04.Set loCreateWorkbook = Workbooks.Add 05. 06.'// Excel2007以上の場合、Excel97 - 2003形式でBookを保存する 07.If Application.Version > 11 Then '// (1) 08. 09. loCreateWorkbook.SaveAs Filename:="C:\test\hoge.xls" _ 10. , FileFormat:=56 '// (2) 11. 12.Else 13. loCreateWorkbook.SaveAs Filename:="C:\test\hoge.xls" 14.End If 以下、上記のコードの解説です。 (1)「Application.Version」で、マクロを実行しているExcelの    バージョンを取得することができます。    ちなみに、「11」は、Excel2003を表す数値です。 (2)マクロを実行しているExcelのバージョンを判定した結果、    Excel2007以降のバージョンだった場合、    Excel97-2003形式を指定してブックを保存しています。    ちなみに、「56」は、Excel97-2003形式を表す数値です。    Excel2007以降のバージョンでは、「xlExcel8」という    システム定数を利用することができますが、    今回の場合は、Excel2003以前のバージョンでも動作を保証するので、    システム定数を利用せずに値を設定しています。 Excel2003以前のバージョンで作成したマクロで、新しいブックを作成する処理を実装していた場合、ユーザの環境がExcel2007以降のバージョンに変更になった際には、上記の問題が必ず発生します。

penichi
質問者

お礼

 これは、  「新しいブックを作成する」というマクロについての話のようですね…。    ですが、参考になりました。  ご回答、どうもありがとうございました!

  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.3

保存するとき、拡張子.xlsxにしちゃったかな? 拡張子.xlsmのブックじゃないとマクロは動きませんよ。 .xlsのままなら、#1さんの言う通りなんですがね。 その辺のチェックはした方が良いかもです。

penichi
質問者

お礼

拡張子は問題有りませんでした。 ご回答、どうもありがとうございました!

  • Turbo415
  • ベストアンサー率26% (2631/9774)
回答No.1

そのファイル自体が開けないのでしたら、エクセルのセキュリティーの問題でしょう。 信頼する場所にない場合はマクロは無効にするのが普通です。 私の場合エクセル2000で作ったマクロを2010で動かしています。 古いバージョンで作った物は上位互換のはずです。 逆はダメな場合がありますが。 参考までに。

penichi
質問者

お礼

 向こうのパソコンがマックなので、  そのことが致命的なのかもしれません…。    いろいろ試してみます。  ご回答、どうもありがとうございました!

関連するQ&A

  • マクロのコピーのやり方について

    マクロのコピーのやり方について エクセル2003で作成したマクロが組まれているシートをエクセル2007の新しいシートにコピーしたらマクロが正常に機能しません。どのようにコピーすればエクセル2007のシートに張り付くのでしょうか。 今現在はエクセル2007を使用しているので2003ではなく2007バージョンで変換しようとしたらできなかったので、新しいシートにコピーして貼り付けという作業をしているところです。

  • 別のアプリケーションとエクセルマクロについて

    エクセルとは別のアプリケーションのデータの文字をコピーして エクセルのシートのある決まった位置に張り付ける、ということを 簡単に行いたいのですが、(マクロ的にボタン一つとか) どういった方法がありますか? エクセルのVBAマクロは作っていますが、 別のアプリからデータをコピーして持ってくるというのは、できないですよね。 (csvとかに落とすこともできないデータです。) 別のアプリの文字をコピーする段階で、VBAでは無理だと思うので、 他のプログラム言語だと、そういうことができますか? C言語は少し習いましたが、何か最適な方法や、 このプログラム言語だと、簡単にできるというのがあれば、教えてください。 よろしくお願いいたします。

  • エクセル マクロ一覧

    開いているブックにあるマクロの一覧を作れないものでしょうか? モジュール、シート、ユーザーフォーム内にあるマクロすべてです。 VBAのチェックシートとして使いたいのですが エクセルバージョンは2003です

  • EXCEL VBA マクロ値 のコピーについて

    マクロの初心者です。EXCEL VBA でタイマーマクロを作成し、結果の値を他ファイルの  EXCELシートに貼り付けようとしたところ、2012/9/30 13:38が2008/9/29      13:38となり、-0:08:53が-0.00616898148・・・・となり、真値がコピーできません。どなたか教えていただけないでしょうか?

  • EXCELマクロについて

    csvファイルを一旦EXCELで保存して、見やすい表にしたいのですが、その作業をマクロに記憶させることができる考えております。 ただ、その記憶したマクロを他のパソコンにもコピーできますでしょうか。同じ環境のWindowsで同じバージョンのExcel 一応Excelは2003を考えております。 よろしくお願いいたします。

  • エクセル【マクロ】について

    初心者です。 エクセルでシート1のA1からA10まで決めた文字(abc)という文字を検索して、検索文字があるセルの1行をコピーしてシート2のA1から下へ貼り付けるというマクロ(VBA)を作成したいと考えています。 詳しい方、よろしくお願いします。

  • エクセルVBA初心者です。マクロを組んでください。

    エクセルVBA初心者です。組んで欲しいマクロがあります。 Sheet 1に13桁を入力するセル sheet 2に検索したいデータ 手順としては、 Sheet 1のセルにデータを入力 →13桁以上でマクロが開始(されるように設定します) →Sheet 1のセルと同じ数列をSheet 2の列Aから検索 →該当のセルを含む行をSheet 3にコピー →Sheet 1の入力セルの少し下にもコピー (確認用) というのを一回一回ずつやりたいです。 できれば作業中マウスやキーボードを触りたくないので、そのために、マクロの終わわりには入力セル内の消去、マクロの始まりには確認用でコピーした行の削除もつけて下さい。 検索するSheet 2には同じデータが含まれているので、出来ればひとつずつSheet 3にコピーしたいので組み込んで頂けると幸いです。 よろしくお願いいたします。

  • Excelでシートコピーすると幅が変わる

    閲覧ありがとうございます。 Excel 2019で「シートの移動またはコピー」で、シートを新しいブックにコピーすると、幅が変わってしまいます。 同じブック内だと変わらないようです。 どうやら、全くサイズを変更していないセルの幅も違うようです。 シートをコピーする作業はVBAで行っています。 解決方法が良くわからず、質問させていただきました。 ・Excelのオプション変更で解決する方法 ・違う環境で同じExcelブックのVBAを使っても、幅が変更されない方法 できればどちらもご教示いただきたいです。 よろしくお願いいたします。

  • Excel VBAエラー”マクロシートに対する・・

    Excel VBAを勉強している者です。VBAプログラムで Sub Iro1() ・・・ End Sub Sub Iro2() ・・・ End Sub という処理のプログラムを作成しエクセルシートにボタンを作りマクロ登録をしようとすると ”マクロシートに対する参照を指定ください”とエラーが出ます。 すみませんが、解決方法を教えてください。

  • Excelでマクロ実行中に画面を固定する方法

    Excelでマクロ(VBA)を実行しているとお考えください。 内容は他のシートのデータを別のシートにコピー&ペーストするとお考えください。 すると、画面がめまぐるしく動きます。 これをとめる方法をご存知の方教えていただければうれしいです。 (以前、やったことがあるんですが、忘れてしまいました) (また、検索で調べようとしたのですが、どのようなキーワードで検索すればいいのかわかりませんでした(私のキーワードでは見つかりませんでした)) よろしくお願いいたします。

専門家に質問してみよう