• ベストアンサー
  • 困ってます

エクセルXPと2000でのマクロ

初歩的な質問になりますがご存知の方は是非教えて下さいm(__)m EXCELXPでリストから並び替えのマクロを記録させてフォームボタンに登録したのですがそのマクロをEXCEL2000で開いて実行しようとすると「コンパイルエラー/プログラムまたはライブラリィがありません」とでて実行できません。 ボタンでなくメニューバーからマクロを実行すると実行できます。 番号の振り直しのマクロもフォームボタンからは上記同様できません。 でも●●シートへ戻るとか振り仮名を表示するとか非表示にするとかはフォームボタンからでも実行できます。 EXCEL2000で同じ操作のマクロを作ってフォームボタンに新たに登録しなおすとボタンからの実行が出来るようになりました。 VBA画面でみるとエラーの箇所に「DataOption1:=xlSortNormal」とでていて(こちらはEXCELXPで作ったマクロ)EXCEL2000で作ったマクロと比べると「Orientation:=xlTopToBottom」と出ていて違うみたいだなぁと・・・。 でも基本的にVBA画面はあまり分からないので、なんでボタンから操作するとエラーが出たのか分かりません。理由が分からないので修正もできません。(┰_┰) 2000とXPと両方で開くことが多いのでどちらでも実行できるような状態にしておきたいのですがどうしたらいいのでしょう?何故こんなエラーがでてしまうのでしょう?対策はどうしたらいいのでしょう? どうかご存知の方、宜しくお願いしますm(__)m 因みにEXCEL2000のPCのOSは98でEXCELXPのPCのOSはXPです。

  • me8
  • お礼率85% (83/97)

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数126
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.1
  • taknt
  • ベストアンサー率19% (1556/7783)

一般的には 下位互換です。 古いので作れば、新しいので読めます。 新しいので作った場合、追加された機能とかあるとそれが古いのでエラーとなります。 両方使う場合は、下位に合わせないとダメでしょう。 つまり 2000で すべて作るというわけです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

そういう理由なんですね。 確かにMeのパソコンでEXCELXPのもので開くと無事できました。 2000で開きたいなら2000でマクロを作らないと駄目なんですね・・・(涙) 勉強になりました。 ありがとうございました。

関連するQ&A

  • Excel 2000 のVBAにおけるソートについて教えて下さい。

    Excel2002のVBAで、並び替えをマクロ記録させると、Excel2000ではなかったものがあるのですが、これはどんな意味なのですか? 2002で記録されたマクロは、 Selection.Sort Key1:=Range("E2"), Order1:=xlDescending, Header:= xlGuess,OrderCustom:=1, MatchCase:=False,Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal です。このうち2000のマクロ記録では最後の DataOption1:=xlSortNormal がないのです。この2002以降(?)で記録されるこの部分はどのような働きをするのですか? また2000では同じような働きをさせるにはどのようにマクロを記述すればいいのですか? よろしくお願いします

  • Excelのマクロで困ってます・・・・

    大学生です。力を貸してください(>o<) 自宅のExcel2003にて、とある作業をさせるマクロを作成、フォームボタンを貼り付け、そこに記憶したマクロを登録させる。これを5~6個作りました。そして正常に動きました。 問題はココからです。学校のExcel2003でそのボタンを押したらエラーが出てしまいました。裏方であるVBAの知識が全くない私なりにネットでそのエラーをざっと調べた結果、コピー&貼り付けを繰り返すマクロなのですが、どうやら『範囲選択でミスがあるよ』的なエラーみたいなんです。でも自宅のではちゃんと動作しました・・・・。 もう1つ、別のPCのExcel2007にて、同じようなエラーが発生しました。 これはどうすれば良いのでしょうか?非常に困っていて先に進めません!どうか力を貸してください! よろしくお願いします。

  • エクセルのマクロでの並べ替えにおいて

     できるExcel2000マクロ&VBAを読みながら,マクロに初挑戦しました。ところが初めからつまづいています。  住所録の並べ替えです。131人分の住所録をフリガナをキーに並べ替えるのをマクロに記録しました。保存して,早速機能を確認しようと132人目の住所などを入力し,マクロを実行しましたが,機能しませんでした。 Moduleは以下のようになっています。 Sub 五十音順並べ替え() ' ' 五十音順並べ替え Macro ' マクロ記録日 : 2005/1/12 ユーザー名 : ' ' Range("A1:G131").Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range _ ("C2"), Order2:=xlAscending, Key3:=Range("B2"), Order3:=xlAscending, _ Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:= _ xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal, _ DataOption2:=xlSortNormal, DataOption3:=xlSortNormal End Sub 最初の Range("A1:G131") の131が臭いと思い,この数字を132にしたり,住所録の131番目以上に新しいデータを挿入したりするとマクロは機能します。きっと当然のことなのでしょうが・・・。おそらく記録するときに何か問題があるのではないかと思うのですが,解決法をご教授下さい。

  • 【Excel2010マクロ】シート名を固定したくな

    マクロには全然詳しくないので、マクロの記録を利用して下記のようなデータの並び替えのマクロを作成したのですが、sheet名が「Sheet2」(大文字小文字区別無し)じゃないとマクロが動きません。 -------------------- Sub 並び替え() ' ' 並び替え Macro ' ' Columns("A:A").Select Columns("A:AR").Select With ActiveWorkbook.Worksheets("Sheet2").Sort .SortFields.Clear .SortFields.Add Key:=Range("AN:AN"), Order:=xlAscending, DataOption:=xlSortNormal .SortFields.Add Key:=Range("AC:AC"), Order:=xlAscending, DataOption:=xlSortNormal .SortFields.Add Key:=Range("AD:AD"), Order:=xlAscending, DataOption:=xlSortNormal .SortFields.Add Key:=Range("AF:AF"), Order:=xlAscending, DataOption:=xlSortNormal .SortFields.Add Key:=Range("AG:AG"), Order:=xlAscending, DataOption:=xlSortNormal .SortFields.Add Key:=Range("AH:AH"), Order:=xlAscending, DataOption:=xlSortNormal .SortFields.Add Key:=Range("AJ:AJ"), Order:=xlAscending, DataOption:=xlSortNormal .SortFields.Add Key:=Range("AK:AK"), Order:=xlAscending, DataOption:=xlSortNormal .SortFields.Add Key:=Range("AN:AN"), Order:=xlAscending, DataOption:=xlSortNormal .SetRange Range("A:AR") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub -------------------- マクロを実行するsheet名は都度変わりますので、sheet名を固定しなくてもデータを並び替えられるようにするには、どのようにしたらよろしいのでしょうか?

  • アクセス・マクロの登録について

    いつもお知恵拝借、ありがとうございます。 最近、初めてaccess vbaのモジュールを作成しました。excelでは経験があったので、そのつもりで、フォームのコマンドボタンに「マクロの登録」をしようと思ったのですが、excelの時のように、右クリック→マクロの登録・・・と言うわけにはいかないようです。 いろいろネットも調べてみたのですが、どうも要領を得ません(^^;) accessのフォームのコマンドボタンに、マクロを登録するにはどうしたらいいのでしょうか? 因みに、vbeの画面から実行すると、ちゃんと動いてくれます。 基本的な質問ではなはだ恐縮ですが、どなたかご指導のほど、よろしくお願いしますm(_ _)m

  • 【ExcelVBA】マクロボタンについて

    こんにちは。 Excel2003で作成したマクロ1をマクロボタン1に登録してシート上に配置しています。 これをExcel2013で開いて(互換モード)マクロボタン1をクリックしてマクロ1を実行すると、エラーは出ませんが、正しい結果が得られません。 マクロボタンからではなく、Alt+F8キーで表示されるマクロ一覧からマクロ1を選択して実行すると、正しい結果が得られますので、コードの記述には問題なさそうです。 上記のマクロとは別のマクロ2をマクロボタン2に登録して、マクロボタン1と同じシート上に配置していますが、こちらはボタンからの実行でも正しい結果が得られます。 試しに、フォームコントロールから新たにボタンを挿入し、マクロ1を登録して実行してみましたが、結果は同じでした。 また、互換モードではなくExcel2013で保存し直して(.xlsm)上記と同じことをしてみましたが、これも結果は同じでした。 何が原因として考えられるでしょうか? マクロをボタンに登録しないと絶対に困るというわけではないのですが、ボタンからの実行では正しい結果が得られないのが不思議です。 よろしくお願いします。

  • PowerPoint VBAコマンドボタンでのマクロ

    PowerPointでVBAを使ったフォームを作製しました。 そのフォームを表示させるためマクロを書き、スライド上に コマンドボタンを配置させマクロを実行させたいと思っています。 ExcelのVBAですとコマンドボタンにマクロを割り当てるのは ツールバーのフォームのコマンドボタンで設置すると簡単ですが PowerPoint VBAですとコントロールツールボックスでのコマンド ボタンしかなくボタンにマクロを割り当てる方法が分かりません。 どなたかコマンドボタンにマクロを割り当てて実行する方法を 教えて下さい。 宜しくお願い致します。

  • excel マクロの有効ブックの特定

    excelにvbaでマクロを入れているのですが、マクロの有効なファイルをそのマクロを登録しているファイルのみにするにはどうしたらいいのでしょうか。要するにそのファイルのみでマクロを実行できるようにする場合です。 因みに、マクロを登録しているのまexcel2003タイプです。

  • mac excel 2011 マクロ

     現在macのexcel2011でVBAを勉強中なのですが、いきなりつまずいてしまいました。 適当なマクロを作り、ボタンにマクロを登録しようと ボタンを作り → ボタンで右クリック → マクロの登録 と選択すると 「Microsoft エラー報告ツール」 というウインドウが出てきて 「問題が発生したため、Microsoft Excel を終了します。ご不便をおかけして申し訳ありません」といった趣旨のメッセージが表示され、excelが強制終了してしまいます。 試した数は少ないですが、おそらくマクロの内容に関係なく起きる気がします。 チェックボックスなどにマクロを登録しようとしても同じ現象が起きます。 何かわかる方がいらっしゃいましたら、返答よろしくお願いします。 使用しているOSは     OS X 10.8.3 です。

  • エクセルのマクロ記録を他のシートでも実行したい

    エクセル2010を使用しています。 シート1でマクロ記録を使用しデータの並び替えをし、 同じブック内にシート1をコピーしてシート2としました。 このシート2でもシート1で行ったデータの並び替えをしたいのですが シート2ではマクロは実行されませんでした。 わからないながらもVBAを見たところ下記のように 記述されおりましたが、どのような修正をすればよいかご教授いただけると助かります。 ちなみに、シート1でマクロを記録し、そのシートを同ブック内に複数コピーして それぞれのシートでマクロを実行させるということを考えています。 Sub Macro1() ' ' Macro1 Macro ' ' Range("A11:Q17").Select ActiveWorkbook.Worksheets("1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("1").Sort.SortFields.Add Key:=Range("B11:B17"), _ SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="日,月,火,水,木,金,土" _ , DataOption:=xlSortNormal ActiveWorkbook.Worksheets("1").Sort.SortFields.Add Key:=Range("A11:A17"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("1").Sort .SetRange Range("A11:Q17") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub