次の方法で共有

マクロでショートカットメニューを作成したが、割り当てたとおりのコマンドが実行されない

Anonymous
2010-07-29T15:32:31+00:00

accdb(Wint7Ultx64/Access2010(64)で作成)にてフォーム(データシートビュー)上に配置しているテキストボックスもしくは該当フォームのショートカットメニューバープロパティにマクロ名を設定しショートカットメニューを作成しているのですが、割り当てたコマンドと違うコマンドが実行されてしまいます。

どのような対処をしたらよいかわからず少々困り中なのです。

マクロ名:macroShortCut ←これがショートカットメニューバープロパティに。

<?xml version="1.0" encoding="UTF-16" standalone="no"?>

<UserInterfaceMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"><UserInterfaceMacro MinimumClientDesignVersion="14.0.0000.0000"><Statements><Action Name="AddMenu"><Argument Name="MenuName">ShortCut01</Argument><Argument Name="MenuMacroName">macroSubShortCut</Argument></Action></Statements></UserInterfaceMacro></UserInterfaceMacros>

マクロ名:macroSubShortCut

<?xml version="1.0" encoding="UTF-16" standalone="no"?>

<UserInterfaceMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"><UserInterfaceMacro MinimumClientDesignVersion="14.0.0000.0000"><Statements/>

<Sub Name="ソート"><Statements><Action Name="AddMenu"><Argument Name="MenuName">ソート</Argument><Argument Name="MenuMacroName">macroSubSort</Argument></Action></Statements></Sub><Sub Name="フィルタ"><Statements><Action Name="UndoRecord"/></Statements></Sub><Sub Name="すべて解除"><Statements><Action Name="RunMenuCommand"><Argument Name="Command">RemoveFilterSort</Argument></Action></Statements></Sub></UserInterfaceMacro></UserInterfaceMacros>

マクロ名:macroSubSort

<?xml version="1.0" encoding="UTF-16" standalone="no"?>

<UserInterfaceMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"><UserInterfaceMacro MinimumClientDesignVersion="14.0.0000.0000"><Statements/>

<Sub Name="解除"><Statements><Action Name="RunMenuCommand"><Argument Name="Command">RemoveAllSorts</Argument></Action></Statements></Sub><Sub Name="昇順"><Statements><Action Name="RunMenuCommand"><Argument Name="Command">SortAscending</Argument></Action></Statements></Sub><Sub Name="降順"><Statements><Action Name="RunMenuCommand"><Argument Name="Command">SortDescending</Argument></Action></Statements></Sub></UserInterfaceMacro></UserInterfaceMacros>

この状況で、該当フォーム上での以下の操作をすると、

1. 右クリック→ショートカットメニュー展開→ソート→解除  該当フォームがデザインビューで開く

2. 右クリック→ショートカットメニュー展開→フィルタ  クラスモジュールが追加されtる

3. 右クリックショートカットメニュー展開→ソート→降順  昇順の場合トグル押下状態のチェックマークが表示されるが、表示されない

Win7Ult x64+Office2010(64)/Win7Ult x32+Offce2010(32) いずれの環境でも同様な現象です

Win7Ult x64+Runtime(2010/64) の場合、

上記2の操作で新規クラスモジュールが追加されることが、終了時保存確認が出るので現象が認められます

上記1の操作で該当フォームがレイアウトビューでいったん表示されF5押下で単票フォームに移行します。

このフォームはフォームビューの許可:いいえ/レイアウトビューの許可:いいえ となっています。

さて、どうしたものやらなんです。

ショートカットメニューのコマンドの並びを変更すること。ショートカットメニューマクロにコメントを挿入することで求めるコマンドに実行がされることを確認していますが、規則性がわからず対応できてない状況であります。

また、本件不具合なのかもと認識できた場合、どのような報告をすべきなんでしょうか?

バージョン情報:14.0.4760.1000(64ビット)/currentdb.Properties("Build")は 1150

****以下、追記しました(提示xmlをマクロエディタにペーストできるように改行入れました。)****

2番目のマクロのうち、以下の部分は

<Sub Name="フィルタ"><Statements><Action Name="UndoRecord"/></Statements></Sub> となっていますが、

マクロエディタ上では、メニューコマンドの実行/コマンド:フィルタメニューとしているのですが、コピペしてxmlを見るとUndoRecordになってしまいます。

なので、コピペしたxmlをマクロエディタ上にペーストすると、件の部分は、メニューコマンドの実行/コマンド:レコードを元に戻すになってしまう。

macroSubShortCutは、マクロエディタで以下の通り作成しています。

サブマクロ :ソート

メニューの追加

メニュー名:ソート

メニューマクロ名 macroSubSort

サブマクロの最後

サブマクロ :フィルタ

メニューコマンドの実行

コマンド:フィルタメニュー

サブマクロの最後

サブマクロ :すべて解除

メニューコマンドの実行

コマンド:フィルター/並び替えの解除

サブマクロの最後

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2010-08-06T11:17:59+00:00

サポートのステータスが推移したので投稿。

本件内容は、症状の確認、過去事例の調査など経て、開発セクションでの調査開始というようなことらしいです。おそらく不具合なのでしょう。

偶然に出くわした現象で常に発生するものではないと言えるのですが、割り当てのコマンドとは違うコマンドが実行されてしまうことは少々困りますので、早めの修正をお願いしたいところです。

本現象以外でのコマンドでも発生しうる可能性はまだ否定できていませんし、Runtime環境にも影響していますので尚更かなと。

さ~て、同様な症状が発生した場合の対処方法としては、

  1. ショートカットメニューの構成するサブマクロの順番を変更してみる。
  2. 該当するサブマクロ内にコメントを挿入してみる。
  3. 該当サブマクロ内でエラー時を追加してみる。(コメント挿入と同じ効果かもしれない。)

以上の3本です。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

5 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2010-08-03T10:13:05+00:00

    にょろりんぱ さん、こんにちは。

    サポートに問い合わせしていただいたのですね。

    その後の結果など分かりましたら、こちらをご覧のみなさんにも情報を共有していただけると幸いです。 (お手数ですが。。。)


    黒田まい – Microsoft Support

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2010-07-30T16:34:52+00:00

    本件、サポートに対し調査等依頼しました

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2010-07-30T07:08:18+00:00

    にょろりんぱ さん、こんにちは。

    Answersをご利用いただきまして、ありがとうございます。

    ご希望通りにコマンドが実行されない、ということですが、いろいろな環境で検証していただいたようですね。

    バグかどうか仕様を確認なさりたい場合は、サポート窓口へ直接お問い合わせいただく方が、早くて確実かもしれません。

    サポート (カスタマー サービス&サポート)


    黒田まい – Microsoft Support

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2010-07-30T04:01:29+00:00

    英語版を試す機会があったのでどうなるか確認してみました。

    該当フォームがデザインビューで開いてしまう/クラスモジュールが追加されてしまう この2点については同様な現象を確認しました。

    また、マクロエディタ上をコピペで得られるxmlのうちサブマクロ(フィルタ)の部分が、

    日本語版:<Sub Name="フィルタ"><Statements><Action Name="UndoRecord"/></Statements></Sub>

    英語版:<Sub Name="subFilter"><Statements><Action Name="RunMenuCommand"><Argument Name="Command">FilterMenu</Argument></Action></Statements></Sub>

    の通り差異があることが認められました。ただ、これは意図しないコマンドが実行される件とは別の問題な気がしています。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません