質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

1801閲覧

access vba フォームの表示位置制限

moluchan

総合スコア6

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2020/11/06 09:31

Access2016を使用しています
フォームの最前面表示にしたところ
画面の下にあるタスクバーより下に行くとフォームが消えてしまいます

フォームを移動した際に
フォーム位置を取得して、一定の位置より下にフォームが行くと指定の位置にフォームが再表示されるようにしたいです
常に画面上に表示させる方法はありますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sazi

2020/11/07 07:29

そのフォームはデータベースウインドウ内の表示ですか?
moluchan

2020/11/10 02:46

accessのアプリケーション内ではなく2画面のモニタを使っていますがどちらにでも動かすことが出来るフォームです。
sazi

2020/11/10 04:23 編集

ポップアップウインドウという事ですね。 画面の領域外から表示域に戻す操作はご存知ですか? ご存知の上でそれをコード化したいという事でしょうか?
moluchan

2020/11/10 10:01

はい。ボタンをクリックすると画面外に出たフォームを戻す事は出来ていますが、それだと意図的に隠されてしまう可能性が出来てしまいまして。 その為手動でボタンで表示を戻すのではなく自動で画面内に常に表示させておくことがしたいと考えています。
sazi

2020/11/10 10:08

画面を移動できなくするなら、プロパティのみで済みますけど。
moluchan

2020/11/11 02:29

質問内容が分かり辛くすみません。 画面は移動出来たままにしたいです timerintervalも考えましたがフォームが画面外に出た時のみに位置の修正が入るようにしたいんです。 画面内であれば場所はどこにでも置いてても良いけど、隠すのはダメ、という感じが良くて。。
moluchan

2020/11/11 02:41

フォームが移動された時などに、位置を取得→指定した範囲より外に出た場合にエラーを出して画面内に強制的に移動させる というのは厳しいでしょうか。
sazi

2020/11/11 04:48

回答にコメントして貰えますか。 一応追記しておきました。
guest

回答1

0

ベストアンサー

画面を移動できなくするなら、「移動可能」プロパティ=「いいえ」とするだけで済みます。

画面移動を許容しつつ、特定の位置に表示するなら、フォームの「TimerInterval」を設定し、一定間隔で、特定の表示位置にDoCmd.MoveSizeで移動する方法が考えられます。

画面は移動出来たままにしたいです
timerintervalも考えましたがフォームが画面外に出た時のみに位置の修正が入るようにしたいんです。
画面内であれば場所はどこにでも置いてても良いけど、隠すのはダメ、という感じが良くて。。
フォームが移動された時などに、位置を取得→指定した範囲より外に出た場合にエラーを出して画面内に強制的に移動させる というのは厳しいでしょうか。

フォームにLocationChangedやMoveイベントがあればいいのですが無さそうなので、タイマーで監視するしかない気がします。

現在位置の取得は、以下辺りを参考に。(エクセルフォームですけど、違いはハンドルだけだと思います)
指定したウィンドウの位置、サイズを取得する
ユーザーフォーム表示位置の制御

投稿2020/11/10 10:24

編集2020/11/11 04:48
sazi

総合スコア25206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

moluchan

2020/11/13 02:09

timer intervalで 数秒おきに条件で現在の位置を取得し、それより外にあれば戻すということにしました。 ただwindowleft,windowtopにするとaccessのアプリケーションを開く場所を統一しない事には難しいという問題が出てきたので、もう少し考えてみたいと思います
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問