• ベストアンサー

エクセル2010で作成したマクロ

エクセル2010で作成したマクロブックがあります。 このエクセルを知人にメールで送りました。 知人のエクセルは2007です。 マクロブックのフォームボタンを押しても何も動作しない状況との事です。 エクセル2010で作成したマクロブックはエクセル2007と互換性がないのでしょうか? 素人の質問で申し訳ありませんが、ご指導お願いいたします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

>エクセル2010で作成したマクロブックはエクセル2007と互換性がないのでしょうか? ご相談の状況からすると、まずそういう事はありません。 まぁ2010でしか動かない内容であなたがマクロを作成した可能性は確かにありますが、その場合でも「何も動作しない」という事はありません。ふつーにエラーが出て止まります。 一応あなたの側で確認しておくべきポイントとしては、 ○間違ったブックを送っていないか再確認する  ・ちゃんとマクロを付けたブックを送ったか確認する  ・名前を付けて保存でファイルの形式をマクロ有効ブックにして保存したのを送ったか再確認する といったところをよく確認してください 先方に対してあなたが確認すべきポイントとしては、 ○「何も起こらない」とは、具体的にどんな状況なのか再確認する  ・ホントにうんともすんとも反応が無いということなのか  ・実は何かエラーメッセージっぽいダイアログが現れて、OKをクリックしてもマクロが動作した様子が無いとかの状況では無かったか 具体的な状況が明らかになったら、ようやく対処を検討する事ができるようになります。 ●そもそもどういうマクロを作成したのか、ご自分の作成したマクロをよく確認して、「反応が現れない」マクロを書いてたんじゃないのか再確認する  たとえば無意味にon error resume nextのような仕込みをしてたりしないか  たとえば不適切なデータに対して何も作動せずに終わってしまうようなそもそも作りにしてたんじゃないか  とか。 ●実は何かダイアログが出てたのなら、具体的にどんなダイアログなのか正確に聞き取って、あなたの方で対処を考える  「マクロが無効になってる」のなら、マクロを有効にして実行するように伝える  とか。

takechi51
質問者

お礼

keithinさん ご丁寧にありがとうございます。 マクロ有効ブックで保存したファイルを間違えなく、知人に送っております。 知人がフォームボタンを押した時の反応は、keithinさんの仰るように“うんともすんとも反応が無い”と言われました。 メッセージの警告は出たのですが、マクロは有効にしてもらいました。 その後の状況が、フォームボタン無反応という現状です。 >反応が現れない」マクロを書いてたんじゃないのか再確認する 以下のマクロを記述しました。 Sub 得点順() ' ' 得点順 Macro ' ' Range("B98:J119").Select Selection.Copy Range("B133").Select Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _ , SkipBlanks:=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("AE102:AE119").Select Application.CutCopyMode = False Selection.Copy Range("K137").Select Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _ , SkipBlanks:=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveWindow.SmallScroll Down:=6 Range("B137:K154").Select Application.CutCopyMode = False ActiveWorkbook.Worksheets("東01").Sort.SortFields.Clear ActiveWorkbook.Worksheets("東01").Sort.SortFields.Add Key:=Range("K137:K154") _ , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("東01").Sort .SetRange Range("B137:K154") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Range("B132").Select End Sub コピー・貼り付け・並び替えのマクロになっています。

その他の回答 (2)

回答No.3

最初に、Excel2010で作成したマクロが、Excel2007で、多少の問題が発生しますが、私自身の経験では、コードのレベルでは分からないエラーを発生します。これは、マクロ・フリーにして、Excelのマクロ付きファイル(xlsm等)を開くと、自動的に働くマクロには、応分のセキュリティが働いて、一気に進まないようにしているとしか思えません。ただし、この問題は、2007バージョンに限りますし、間違いなく、マクロを有効にしてある限りは、何らかの反応はします。 さて、2007の設定ですが、 2007バージョンで、Excelの画面の左上の丸いボタンをクリックしてExcelのオプションから、セキュリティ・センターを開き、「セキュリティ・センターの設定」をクリックします。 左ペイン(窓)の「マクロの設定」をクリックし、 「警告を表示してすべてのマクロを無効にする(D)」のレベルにしてあれば、大丈夫なはずです。 たぶん、[すべてのマクロを有効にする(E)]は、設定していないでしょうし、あまりお勧めしません。 [デジタル署名されたマクロを除き、すべてのマクロを無効にする(G)]にもしないほうがよいでしょう。 プライベート仕様のマクロには、デジタル署名は、あまり意味を持たないからです。 [警告を表示せずにマクロを無効にする(L)]と、セキュリティを最上位の設定してあれば、警告も何も表示しません。これもマクロブック用には選択肢には入れられません。 今回は、関係ないとは思いますが、同じく、左ペインの「ActiveXの設定」も、[警告を表示せずすべてのコントロールを無効にする]という設定は避けたほうがよいでしょう。 ただ、  セキュリティの[警告を表示せずにマクロを無効にする(L)] の設定は、アンチウイルスソフトで、毎回、自動的に [警告を表示せずにマクロを無効にする(L)] に設定してしまうものがありますが、その場合は、Excelのセキュリティ・センターで、その都度、変更してもらうしかありません。少々面倒です。 この場合、Excelのオプションの「基本設定」で、 「[開発]タブをリボンに表示する(D)」にチェックを入れてあると、「開発」タブをクリックして、「マクロのセキュリティ」を選べば「セキュリテイの警告」の設定がしやすくなります。 さて、そのように設定し、マクロ付きのファイルを開くと、「セキュリティの警告」バーが、りボンの下に表示され、その中の 「オプションボタン」を押し、 ●このコンテンツを有効にする(E) を選択するようにします。 場合によっては、[セキュリティの事前通知]という「ダイヤログボックス」が出ることもあるようですから、その場合は、「マクロを有効にする」をクリックして選択してください。 ここらは、Excel2010とは、多少違う反応のようです。多少のカッコ内の文言の間違いが存在するかもしれませんが、その場合は、ご容赦ください。 ----- もちろん、掲示されたコードは、ちょっとまずい点があります。 ActiveWorkbook やActiveWindowが普通に出てきますが、それは、相手環境を考えれば、そのようなコードにはなりません。少なくとも、ActiveWorkbookは、ThisWorkbookではなかろうかと思います。 ActiveWindow.SmallScroll Down:=6 これは、記録マクロの痕跡でしょうか。それほど必要とは思いません。 それから、いきなり Range("B98:J119").Select こういうやり方は、マクロとしてはヘンです。たぶん、標準モジュールに書いているはずでしょうから、まず、マクロはどこのブックのどこのシートを対象にするか、という件が抜けてしまっています。 相手の人は、必ずしも、自分が思っているブックやシートを開いているとは限らないからです。 それから、ご自分のExcelでは動くでしょうから、問題はなかろうかと思いますが、フォームボタンは、ちゃんとマクロと関連付けられているかは確認してください。 デフォルトで、決まった名称になるはずですが、Sub ボタン1_Click()ではなく、Sub 得点順()ということでしょうから、それをフォーム-->右クリックで、「マクロの登録」で関連付いているかどうかは確認します。 以上が、私の思い当たる点を出してみました。

takechi51
質問者

お礼

WindFallerさん ご指導をありがとうございます。 >ActiveWorkbook やActiveWindowが普通に出てきますが、 普段、ActiveWorkbookのような表記を使っていました。 今後はThisWorkbookのように記述させたいと思います。 >ActiveWindow.SmallScroll Down:=6 こちらは、記録時の消し忘れです(汗) 余計なものは省いておくべきでした。 >フォームボタンは、ちゃんとマクロと関連付けられているかは確認してください。 こちらは問題なく、フォームボタンに“登録”してあります。 「マクロの設定」 今後も私のエクセルブックが多くの方に使用される予定です。 2007ユーザーには、WindFallerさんの「マクロの設定」を参考にさせていただきまして、スムーズな受け渡しをしたいと思います。 まずは“D”レベルに設定してもらうように促してみます。 詳しいご指導をありがとうございました。

  • shintaro-2
  • ベストアンサー率36% (2266/6244)
回答No.1

>知人のエクセルは2007です。 >マクロブックのフォームボタンを押しても何も動作しない状況との事です。 互換性の問題ではなく、 知人のエクセルのセキュリティレベルの設定によるためだと思われます。 セキュリティレベルを中に変更してもらってください。

takechi51
質問者

お礼

shintaro-2さん ご教授をありがとうございます。 セキュリティレベルの確認はしていませんでした。 早速、メールにて、セキュリティレベルの設定をいたします。

関連するQ&A

  • エクセル2007のマクロのフォームで作成したボタンの色は変えられるんで

    エクセル2007のマクロのフォームで作成したボタンの色は変えられるんですか? マクロ初心者です。

  • エクセルマクロのフォーム表示ついて

    フォームを使うマクロを作成中です。 1つの機能分のマクロを書いては動作を確認しながら 作っていたのですが、 「ブックを開くと同時にシートを隠してフォームだけ表示」 というのを試してみたところ 無事フォームだけ表示されました。 が、作業の続きができなくて困っています。 フォームしか表示されないのでマクロの画面にいけません。 どのようにしたらよいのでしょうか?

  • エクセルでのマクロ作成

    エクセルで作成したボタンをクリックすると以下の事を行うマクロを作りたいと思っています。 (1)最初に貼り付けたいセルの範囲をドラッグで選択する。(手動) (2)マクロを登録したボタンを押す。 (3)マクロ内で指定したセル(たとえば $A$1)をコピーして、(2)でボタンを押してマクロを実行する前に(1)で選択したセルの範囲に貼り付ける。 VBAが分からないので難儀しています。 宜しくお願いします。

  • エクセル2007のマクロ異常

    旧エクセルでシートを新BOOKへコピーするマクロを使っていたのですが、エクセル2007でこのマクロを使うと、登録マクロが新BOOKのマクロに変わってしまって、元のBOOKに戻った時には、このマクロが使えません。マクロ登録で元のBOOKに登録替えしなくてはなりません。解決法をご指導ください。

  • エクセル2007で、一部のマクロが中断してしまいます。

    エクセル2007で、一部のマクロが中断してしまいます。 エクセル2003で作成したマクロをエクセル2007で使用しています。 昨日まで実行できていたマクロが、一部だけ突然実行されなくなりました。 他のパソコンではまったく問題なく実行されますが、1台のパソコンだけ一部のマクロが正常に実行されなくなりました。 シートに作ったボタンを押すと、ユーザーフォームが開くようになっているのですが、ボタンを押すと中断され、コード画面が出てます。 ボタンには メニュー(ユーザーフォーム名).Show のコードだけです。 別のボタンで、シートを移動するボタンがありますが、問題なく実行されます。 マクロはこの2つだけではありませんが、一部のマクロにエラーが出て一部は問題なく実行されるという状況です。 マクロを作成したのは私ですが、使用しているのは別の社員で、昨日使用時に何をどうしたのかはわかりません。(本人は特に何もしていないとのこと) 他のパソコン(エクセル2007)では問題がないので、その1台のパソコンに問題があると思われるのですが、どこをどうしたらいいのか分からず困っています。 私は2003を使用していて2007に慣れておらず、どこをどうしたらいいのか分かりません。 マクロの作成はしていますがパソコンに詳しいわけではないので、出来るだけわかりやすく教えていただければと思います。 よろしくお願いいたします。

  • Excel>マクロを使っていないはずなのにマクロを有効にするかどうか聞かれてしまう

    こんにちはtmgmです。 Excelについての質問です。Excelのブックを開くとマクロが有効かどうか毎度聞いてきます。作業としては次のような手順を踏みました。 ------------------------- (1)Book1.xlsにマクロを作成し、保存して閉じる (2)再度Book1.xlsを開き、マクロが不要になったので、コード編集画面を開き、モジュールの解放後、保存(マクロが割り当てられていたボタンも消去) (3)改めてBook1.xlsを開くと、「マクロを有効にするかどうか聞いてくる」(メッセージからも判るとおりセキュリティは中にしています。) ------------------------- 毎回マクロが有効かきかれなくするにはどうすればよろしいでしょうか?モジュールの解放だけではだめでしょうか?お分かりになる方、ご返答宜しく御願いします。

  • フォームで作成したマクロを開くには

    いつもお世話になっています。 エクセルで会員管理のファイルでマクロの本を見ながら書いています。 ツール⇒マクロ⇒VBEを開いて⇒挿入⇒ユーザーフォームで「職員管理用」のフォームをつくりそれにマクロを書きました。 途中まで書いて、「終了してMicrosoft Excel へ戻る」からファイルの変更を保存して終了しエクセルを閉じました。 この後のマクロを記入しようとしましたが、以前に書いたマクロの画面が表示できません。 VBEを開いて「会員管理」のシートを選んでフォームのタブを選んでも出てきません。 再度新規にユーザーフォームを作成しようとすると「会員管理用のフォームの番号が4とか5になっています。 先に作成したフォームを開く方法をご指導願います。

  • excelでマクロシートをコピーしたとき

    excelでbook1のsheet1のセルA1に「1」を入力→プリントアウト→A1に「11」を入力→プリントアウト・・・以下「31」まで繰り返し。 というマクロが組んであります。 (ボタンにマクロが登録されています。) このシートをbook2にコピーをしたときに マクロを実行する(ボタンを押す)とbook1が開いてしまいます。 これをbook1を開かずにbook2でマクロを実行するには どのようにしたらよいでしょうか。 book2でマクロを作成し直して さらにボタンにマクロを登録していますが、 bookの数が多いのでけっこうな手間になります。 簡単な方法があれば教えて下さい。

  • エクセル:ブックを開くときに「マクロを有効にする」の表示を省略したい

    よろしくお願いします。 エクセルファイルを開くとに、マクロを設定していると「マクロを有効にしますか」と聞いてきますが、 特定のあるブックについて、『必ず有効にする』前提でその表示を出すことを(有効のボタンを押すことを)省略する方法を教えてください。やはりきっと、マクロですよね。 ブックは、パスワードで保護もしていますし、マイパソコンだけでの使用ですので、いちいち有効にするというボタンを押す作業を省略したいのです。 ご指導よろしくお願いいたします。

  • エクセルのフォームをマクロで登録する方法

    教えてください。 エクセルでデータ入力に「データ」から「フォーム」を作成して入力しております。 共有でしようしますので、マクロボタンを作成して、ボタンをクリックすることで、フォームを表示するようにしたいのですが、Worksheeet クラスのshowDateFormメソッドが失敗しました。「デバック」が表示され、フォームが出来ません。マクロでエクセルからフォーム表示出来る方法をお願いします。

専門家に質問してみよう