• ベストアンサー

アクセス2007 SetOptionについて

アクセス2007 SetOptionについて アクセス2007の「Accessのオプション」→「カレントデータベース」→「リボンとツールバーのオプション」 のなかの、「規定のショートカットメニュー」のチェックをはずす。 これをVBAで記述したいのですが、コードがわかりません。 御存知の方、教えて下さい。  

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.5

今更かもしれませんが・・・(汗) 『既定のショートカット メニュー』の設定は、手動で切り替えた際の メッセージにもあるとおり、再起動しないと有効になりません。 (そう言いつつも、『ナビゲーション ウィンドウの表示』のように、  「設定の即時無効化」が可能な項目もあったりするのですが(汗):  但し、これも「非表示→表示」の一方通行で、完全ではありません) [参考]ナビゲーションウィンドウの即時表示方法(フォームからの場合):   DoCmd.SelectObject acForm, Me.Name, True ですので、(「設定変更の即時有効化」に比べると、だいぶ手間が 掛かってしまいますが、)代替策を2つほどご紹介してみます。 【案1・フォーム側の『ショートカットメニュー』の設定を切り替える】 『既定のショートカット メニュー』が有効な状態でも、各フォームの 『ショートカットメニュー』プロパティを「いいえ」に設定すれば、 フォーム上でのショートカットメニューは無効化できます。 但し、「全てのフォームで個別に設定が必要」なのと、「テーブル本体 やナビゲーション ウィンドウの表示が許可されている場合、そこでの ショートカットメニューは無効にならない」という問題があります。 【案2・管理者用と一般ユーザー用に、データベースを分割する】 2007でのマルチユーザーでの動作確認ができていませんが、恐らく Access2003までと同様、他のユーザーが使用中の場合にはデザイン ビューで開くことはできても、変更の保存はできないものと思います。 この問題を回避する意味でも、こちらの手段をお勧めします。 これを行うにあたっては、「管理者/一般」用の分割を行う前に、 「テーブル」のみを持つ「バックエンドエンド」ファイルと、「それ以外」を 持つ「フロントエンド」ファイルに分割する必要があります。 分割は、手動でも行えますが、ウィザードでも行えます: http://office.microsoft.com/ja-jp/access/HA102400961041.aspx 手動の場合は、  1)新規MDBファイルを作成し、全テーブルを一括インポート   (既存MDBからの「エクスポート」だと個別になるため手間が膨大)  2)既存MDBからテーブルを全て削除  3)新規MDBの全テーブルに対して、改めてリンクテーブルを作成 でOKです。 これで、バックエンド(テーブル)側さえ共有にしてしまえば、全ての ユーザーが同じテーブルの読み書きをすることができます。 あとは、フロントエンド側をコピーして配布(ネットワークにつながった 各個人のPCに保存)すれば、一般ユーザーに対してはショートカット メニュー等の使用を制限しつつ、管理者は(自分のPCに保存した MDBファイルを使用することで)いつでもデザイン変更が可能、という 運用方法をとることができます。 (配布ファイルのみ、『既定のショートカットメニュー』をオフにする、と) ※現状では、1つのMDBファイルを共有しているのかと思いますが、   本来は各個人のPCにフロントエンドのコピーを置く形にした方が、   データベースとしては安定します。   但し、管理者のPC上でのデザイン変更は、(当然ながら)他のPC   に自動では反映されないので、各ユーザーにその都度配布する   (または最新ファイルの保存場所を決め、各自にコピーしてもらう)   か、その差替を自動で行う仕組みをつくる必要が生じますが(汗) ・・・以上、参考まで。

situmonnsya
質問者

お礼

DoCmd.ShowToolbar "Ribbon", acToolbarYes / No パスをもっている「管理者」に対しては受け付ける。 もっていない「ゲスト」には受け付けない。 受付たらアクセスの再起動で次回から。としました。 >データベースを分割する は今後の参考にさせて頂きます。 お礼が遅くなり申し訳ありませんでした。 ありがとうございます。

その他の回答 (4)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.4

起動されるとき(=設定を非表示へ) 一般ユーザでシステムログインしフォームを開くとき(=設定を非表示へ) 管理ユーザでシステムログインしフォームを開くとき(=設定を表示へ) 終了するとき(=設定を初期値の表示へ戻す) はっきりしたサンプルが手元にないのですぐにはわかりませんが、 コードは、他の回答例が参考になりネットでもありそうです。 こういうそれぞれのイベントで設定を行うことになると思います。

situmonnsya
質問者

お礼

お礼が遅くなり申し訳ありませんでした。 アクセスの再起動で対処しました。 ありがとうございます。

  • layy
  • ベストアンサー率23% (292/1222)
回答No.3

そうさせたいタイミングをもう一度教えてください。 通常ACCESSを使うときでしょうか。 (システム化した)MDBファイルがあってその起動から終了まででしょうか。 (システム化した)MDBファイルがあってその中のとあるフォームを開いているときでしょうか。

situmonnsya
質問者

補足

システム化した2007MDBファイルが運用されている時「随時に」です。 独自のパスワードを設けていて、管理者以外(パスワード無)の使用時は、マウス右ボタンメニューが出ない。 管理者(パスワード有)の使用時であったら、マウス右ボタンメニューが出る。 例えば、管理者なのにパスワード無で使用中、「ちょっと中身を変更」と思った時、パスワードを入力して 管理権限を獲得して(ここでマウス右メニューが「出る」)フォームをデザインモードにする。とか。

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.2

CurrentDB.Properties("AllowShortcutMenus")=False

situmonnsya
質問者

補足

>「規定のショートカットメニュー」のチェックをはずす。 をしたかったのは、マウスの右クリックでアクセス本体のメニューを出したくなかったからです。 ご教示のコードだと、その場での反応がなく(マウスでの)、次回起動での反応になってしまいました。

回答No.1

Application.CommandBarsでACCESSのメニューとツールバーなどを制御できる。 例: メニュー「表示」使用不可になりたい場合。 Application.CommandBars("Menu Bar").Controls("表示(&V)").Enabled = False メニュー「表示」不表示になりたい場合。 Application.CommandBars("Menu Bar").Controls("表示(&V)").Visible = false ご参考ください。

situmonnsya
質問者

補足

アクセス2007ですが、「エラー」にもならないですが、メニュー制御出来ませんでした。

関連するQ&A

  • Access2010でリボン等を非表示にしたい

    Access2010についての質問です。 自分はプログラムやデータ、クエリー等を修正したいが、他の使用者には中身を変更されたくないので、「ファイル」→「オプション」→「カレント データベース」で、「ナビゲーションウィンドウを表示する」と「すべてのメニューを表示する」のチェックをはずすと、表面上は希望に近いものとなりました。 ただ、以下のことについて解決したいので、どなたかお分かりの方がおられましたらご教授をお願い致します。 (1)リボンで「ファイル」と「ホーム」だけは表示され、操作上問題があるので、これらも非表示または操作無効にしたい。 (2)クイックアクセスツールバーも非表示または操作無効にしたい。 (3)画面右上の「リボンの展開」ボタンも非表示または操作無効にしたい。 ただし、あくまでも自分だけは中が開けるようにしたい。 (Access2000のときは、シフトキーを押しながらデータベースをクリックすると中が開けました) 以上、宜しくお願い致します。

  • Access2007のナビゲーションウィンドウ

    初めまして。 MS-Access2007のナビゲーションウィンドウですが、これを自動的に閉じる方法はないでしょうか? F11を押せば閉じることは知っていますが、ユーザーが操作せずにマクロ(もしくはVBA)もしくは設定等で autorunマクロ実行と同時に自動的に閉じたいと思っています。 また、「Accessのオプション」->「カレントデータベース」->「ナビゲーションウィンドウを表示する」のチェックを はずせば非表示になるは理解していますが、運用上不都合なので避けたいと思っています。 どなたかご存知の方いらしたらご教授願います。 宜しくお願い致します。

  • Access2003 起動時の設定を後から変更する方法について(ウィン

    Access2003 起動時の設定を後から変更する方法について(ウィンドウ非表示⇒表示にしたい) 起動時の設定で、 ・データベースウィンドウの表示 ・ステータスバーの表示 ・全てのメニューを表示する ・規定のショートカットメニュー ・組み込みツールバー ・ツールバー/メニューの変更 を無効にしています。 ショートカットキーは有効です。 この設定で起動した状態から、再度「起動時の設定」を行うにはどうすればよいのでしょうか?

  • オプション→フォームの表示で起動したいフォームを

    アクセス2010 起動時の設定 オプション→フォームの表示 で起動したいフォームをvbaで設定するには? Call Application.SetOption("????", True) このようなコードでいけそうな気がするのですが、?に何を入れればいいのかわかりません。 フォーム名は必要だと思うのですが、 この設定をvbaで行う場合のコードを教えてください。

  • ACCESSのツールバーを非表示にしたい

    ACCESSでフォームを使ったデータベースを作成しようとしています。 限られた表示領域を有効に利用したいのでフォーム表示時にツールバーを非表示にしたいのですがうまくいきません。 起動時に該当フォームを開くようにしていて、Form_Load時に「Application.SetOption \"ツールバーの表示\", False」としているのですが作用してくれません。 一度フォームを閉じてから再表示させるとツールバーが非表示になるのですが…。 起動時にツールバーを非表示にするにはどうしたらよいのでしょうか?

  • ACCESS2010のリボンの非表示について

    お世話になります。 MicroSoftAccess2010のリボンの非表示について 質問です。 リボンの非表示については、他の質問で下記のような対応方法が ありまして、設定することにより、表示をなくすことはできました。 <設定方法> システムオブジェクトの表示をチェックする。 新規で、テーブルを追加する。 テーブル名 USysRibbons フィールド名 RibbonName テキスト型   RibbonXml  テキスト型 データ RibbonName HiddenRibbon RibbonXml "<customUI xmlns=""http://schemas.microsoft.com/office/2006/01/customui""> <ribbon startFromScratch=""true"" /> </customUI>" この作成したテーブルを、ACCESSのオプション→カレントデータベースの リボン名に、テーブルを指定することにより、リボンの非表示ができました。 ここで質問なんですが、 ACCESSの帳票印刷時にページ指定印刷を行いたいときがあります。 ACCESS2003を利用していた時は、メニューバーの印刷からページ指定印刷を 利用者に行ってもらっており、リボンすべてが非表示になってしまうと一部問題があります。 不必要なリボンは非表示にしつつ、ページ指定印刷が可能になるような設定方法に ついてやり方を御助言いただけますでしょうか ご面倒かけまして、申し訳ありませんがよろしくお願いいたします。

  • Access2016ではVBAは使えないのでしょう

    お世話になります。 Access2010を使っています。 今回Office365proに切り替えるべく、インストールしました。 Access2016使用可能になり、これでAccess2010で作成したファイルを開こうとすると以下の警告が出て、かまわず続けると 警告通り、VBAが全て削除されています。 その上、[OK]クリックで警告通り全てのVBAは削除され、[キャンセル]は複数回必要です。 ------------------------------------------------------------------------------------------------------------------- データベースに含まれているVBAプロジェクトを読み取れないため、データベースを開くことができません。 データベースを開くには、VBAプロジェクトを削除する必要がありまます。 VBAプロジェクトを削除するとモジュール、フォーム、およびレポートからすべてのコードが削除されます。 データベースを開いてVBAプロジェクトを削除する前に、バックアップコピーを作成することをお勧めします。 データベースのバックアップを作成する場合は[キャンセル]をクリックしてください。 バックアップコピーをデータベースを開き、VBAプロジェクトを削除する場合は、[OK]をクリックしてください。 --------------------------------------------------------------------------------------------------------------- 互換性を保つ方法はありますか。 追伸 下記のコードもAccess2016で記述及び保存はできるのですが、ファイルを開くことができません Private Sub 終了_Click() Quit End Sub

  • Excel2007のVBAについて

    Excel2007のVBAについて Excel2007以前では「マクロの記録」を実行して罫線や図形の描写を行って、「記録終了」を行うと作業していたコードが記述され、それを加工したりして使っていましたが、Excel2007で同じように行ってもコードが記述されてませんでした。 セルの操作等はコードが記述されていました。 どこか、私の操作方法が間違っているのでしょうか。また2003のようにコードを記述させる方法が別途あるのでしょうか、よろしくお願いします。 関係ないとおもいますが、 「Excelのオプション」で「開発タブをリボンに表示する」はチェック入れてあります。 「マクロの設定」では「すべてのマクロを有効にする」にチェックしています。

  • access起動時の設定とパスワードの解除

    access2010を勉強しています。 テキストに、 「起動時の設定」と「パスワード設定」があり1つずつ試してみました。 設定も解除も説明通りできました。 調子にのってしまい、同時に上記の設定を行いファイルを閉じて開きました。 解除がどうしていいかわかりません。 Shift+開くをしても変わりません。 起動時の設定は確か以下の項目をしたと記憶にあります。 どうすればよいでしょうか。 というか、パスワードと起動時の設定を同時に行ってはいけないのでしょうか? 「起動時の設定」の項目:ステータスバーの非表示、ショートカットキーの無効、ナビゲーションウィンドウの非表示、リボンとツールバーのオプションよりすべてのショートカットメニューの非表示、既定のショートカットメニューの非表示

  • USysRibbonsに登録したリボン定義の切替

    Access2010 USysRibbonsテーブルに複数のリボン名定義を書いており、 リボンとツールバーのオプションにその中の一つを設定してあります。 ここでレポートのリボン名プロパティに別のリボン名を指定した場合は 正しく選んだリボンが表示されるのですが、 フォームの場合はリボン名プロパティに選んだリボンが表示されず、オプションで指定したリボンの方が表示されてしまいます。 フォームを開いた時にVBAでMe.RibbonName = で指定しても変わってくれません。 ここでオプションのリボン設定をフォームで指定したリボン名定義に変えると、正しくそのリボンが表示されているのでXml定義が間違っているというわけではなさそうです。 理想はフォームを閉じている時はオプションで指定したリボン フォームを開いている間だけはフォームで指定したリボンが表示されてほしい、 もしくは動的にVBA等でリボンとツールバーのオプションのリボン名・もしくはフォームを開いた時のリボンを変更できればいいのですがそういう方法はないのでしょうか?