回答編集履歴
1
追記
answer
CHANGED
@@ -1,3 +1,14 @@
|
|
1
1
|
画面を移動できなくするなら、「移動可能」プロパティ=「いいえ」とするだけで済みます。
|
2
2
|
|
3
|
-
画面移動を許容しつつ、特定の位置に表示するなら、フォームの「[TimerInterval](https://support.microsoft.com/ja-jp/office/-timerinterval-%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC%E9%96%93%E9%9A%94-%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3-9732dbbb-3f6f-4eb7-995d-b695f3d9d4b8)」を設定し、一定間隔で、特定の表示位置に[DoCmd.MoveSize](https://docs.microsoft.com/ja-jp/office/vba/api/access.docmd.movesize)で移動する方法が考えられます。
|
3
|
+
画面移動を許容しつつ、特定の位置に表示するなら、フォームの「[TimerInterval](https://support.microsoft.com/ja-jp/office/-timerinterval-%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC%E9%96%93%E9%9A%94-%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3-9732dbbb-3f6f-4eb7-995d-b695f3d9d4b8)」を設定し、一定間隔で、特定の表示位置に[DoCmd.MoveSize](https://docs.microsoft.com/ja-jp/office/vba/api/access.docmd.movesize)で移動する方法が考えられます。
|
4
|
+
|
5
|
+
> 画面は移動出来たままにしたいです
|
6
|
+
> timerintervalも考えましたがフォームが画面外に出た時のみに位置の修正が入るようにしたいんです。
|
7
|
+
> 画面内であれば場所はどこにでも置いてても良いけど、隠すのはダメ、という感じが良くて。。
|
8
|
+
> フォームが移動された時などに、位置を取得→指定した範囲より外に出た場合にエラーを出して画面内に強制的に移動させる というのは厳しいでしょうか。
|
9
|
+
|
10
|
+
フォームにLocationChangedやMoveイベントがあればいいのですが無さそうなので、タイマーで監視するしかない気がします。
|
11
|
+
|
12
|
+
現在位置の取得は、以下辺りを参考に。(エクセルフォームですけど、違いはハンドルだけだと思います)
|
13
|
+
[指定したウィンドウの位置、サイズを取得する](https://www.moug.net/tech/acvba/0020032.html)
|
14
|
+
[ユーザーフォーム表示位置の制御](http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_100_120.html)
|