• ベストアンサー

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

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

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答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/6245)
回答No.1

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

takechi51
質問者

お礼

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

関連するQ&A