- ベストアンサー
Windows7でのAccessフォーム表示
連投、申し訳ありません。 前の質問の仕方および内容が明確になっていませんでしたので書き直しさせていただきます。 前の質問は http://okwave.jp/qa/q6581782.html になります。 WindowsXP上で Access2007でAccessWindowを最小化しフォームのみを表示しています。 この状態でタスクバーをクリックしてもAccessウィンドウは表示されません。 これをWindows7上で動かすと、タスクバーのクリックでAccessのウィンドウが 表示されてしまいます。 これを防ぐ方法は無いものでしょうか? よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です > APIを使用してAccessウィンドウを小さくして邪魔にならない場所に表示することで逃げようかと考えています 邪魔にならない/隠せる場所があれば、その方が良さそう(簡単そう)ですね。 以下、私がメモしていたもので、ここに記述することが許されるのかわかりません。 ※ #1の内容について通報してくださった方がおられたようです ※ Googleで、6583610 を検索すると、通報・・・が見つかります ※ ご質問自体に問題はないと思うので#1の内容かと・・・ ※ 同様以上、問題あれば、通報をよろしくお願いいたします。 以下の内容は、サイト moug のQAで、2009/6/15 近辺のもの 6ヶ月を過ぎていて、今は見ることができません。 Accessウィンドウ枠固定方法 http://www.moug.net/faq/viewtopic.php?t=39049&sid=a174fed8c71903692a648cf754e46f0b Accessを開いたときの大きさを固定したいのですがどうすればいいのでしょうか フォームの場合は Private Sub Form_Open(Cancel As Integer) DoCmd.MoveSize 7650, 3450, 3450, 2925 End Sub とかでできますけど最初にAccessを開いたときのサイズを固定したいと思っているのですが... 標準モジュールで、 Public Declare Function SetWindowPos Lib "user32" _ (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, _ ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, _ ByVal fuFlags As Long) As Long Public Declare Function GetSystemMenu Lib "user32" _ (ByVal hWnd As Long, ByVal fRever As Long) As Long Public Declare Function RemoveMenu Lib "user32" _ (ByVal hMenu As Long, ByVal uItem As Long, ByVal fuFlags As Long) As Long Public Const SWP_NOMOVE = &H2 Public Const SWP_NOSIZE = &H1 Public Const HWND_TOP = &H0 Public Const SC_SIZE = &HF000 Public Const SC_MAXIMIZE = &HF030 Public Const SC_CLOSE = &HF060 Public Const SC_RESTORE = &HF120 Public Const MF_BYCOMMAND = &H0& 起動時に開くフォームの開くときイベントで、 Dim hWnd As Long hWnd = Application.hWndAccessApp SetWindowPos hWnd, HWND_TOP, 0, 0, 800, 600, SWP_NOMOVE hWnd = GetSystemMenu(hWnd, 0) RemoveMenu hWnd, SC_SIZE, MF_BYCOMMAND 上記は単にメモしていたもので、どのような動きをするのか確認はしていません。 また、この VBA 記述部分は、私が書けないサイトにも紹介されていますね。 (書けないサイトの方が、日付的には古いようですが) ※※ じきにBAを選ばなくても質問を閉じれるようになるようです。 BAコレクターではないので、それまで待って閉じてください。 (後から見に来られる方のことを考えて・・・) ※ 問題あれば、通報をよろしくお願いいたします。 失礼しました。
その他の回答 (1)
- 30246kiku
- ベストアンサー率73% (370/504)
回答が付いているものと思ってました。 以下を用意していたのですが、投稿前に停電になってしまったので・・・ ----- 回答しようかずっと迷っていたのですが、本当に困っているんですよね。 (Windows7 + Access 2010 は持っていません) (また、直接の解決策を持っているわけでもありません) どのような方法で実現されていましたでしょうか。 Accessの本体ウィンドウ http://okwave.jp/qa/q4087794.html 上記QAの中で #1さんが提示されたリンク先の方法になりますか。 記事は 2002 までのものとして書かれているようですが、 最近の更新を見ると 2010 もお持ちのようです。 直接問い合わせてみるっていう手もあると思います。 とはいえ、私もその方法を使ってます。 私の環境で確認したところ、OSに依存しているような雰囲気?です。 Access 2000 で作成したものを以下環境で動かしてみると、 (あくまでも私の環境でのことになります) Win2k + Access 2000 → Accessのウィンドウ出ず XPPro + Access 2003 → Accessのウィンドウ出ず Vista + Access 2007 → Accessのウィンドウ表示されます 上記QAで #2さんが他の方法を紹介されていますが、リンク記述部分が削除されているようです。 Accessウィンドウとフォームを一体化するという方法が書かれているところになります。 そのリンク先の中では、 Vista + Access 2003 → Accessのウィンドウ表示されます という事が書かれていますね Vista 以降で現象が発生するということになるのでしょうか。 直接的な解決策は知らないので、画面遷移があるのなら、そのたびにウィンドウを最小化する位しか考えていません。 実際私はそうしています。 ウィンドウが表示されたら、出ちゃったね・・・で何もしていません。 違う方法で・・・を考えた時、 私からリンク提示したいのは山々なのですが、記述すると営業宣伝目的とみなし削除すると通知を受けています。 (過去そのリンクを記述した回答は、丸々削除されました) コード部分だけでも 5,000 文字以上あるみたいです。 文字数は多いですが、コードとしてみる分にはそんなに大きくないと思います。 インデント部分のスペースもあるし・・・ 本QAの回答で記述できるものではないと思います。 一般的なキーワードを提示しますので、色々と覗いてみてください。 ヒットした中に解決できるものがあればよいのですが。 「Accessウィンドウを表示しない方法」をGoogleで検索すると 62,000 件強ヒットしますね。 前述の「Accessの本体ウィンドウ」、 後述の「Access自身のウインドウを表示させたくない」 から作ったキーワードで、特別なものとは思いません 覗いているうちに、そこに辿り着いたとしても、Windows7 + 2010 でどうなるのかはわかりません。 そこには触れるサンプルがあり、そのサンプルの初期画面での確認レベルになりますが、私の環境(vista+2007)では意図した動きをしているように思えます。 ただ、その方法を使って質問者さんの環境で解決できるのかはわかりません。 ご質問の解釈が間違っていましたら、すみません。 実現されていた方法等を具体的に記述されると、識者の方の目に留まりやすいと思います。 愚痴の方が多かったような・・・ 少しでもお役に立てるところがあればと、失礼しました。
お礼
ご回答、ありがとうございます。 方法はAccessのウインドウを最小化して、ポップアップ画面にして実現していました。(一部APIを使用して) 今回は上にまだ承認は取れていませんが、APIを使用してAccessウィンドウを小さくして邪魔にならない場所に表示することで逃げようかと考えています。(Access業務終了時に元の大きさ・場所に戻して) たぶんOSの仕様上、表示されてしまいますような感じがしますので。 参考になりました。 一応、解決とさせていただきますが、何か質問などございましたら記入してください。 2,3日、閉じないでおきます。 今回はありがとうございました。