Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3220 / 13646 ツリー ←次へ | 前へ→

【62706】全画面表示で質問 とっちゃん 09/8/25(火) 12:26 質問[未読]
【62709】Re:全画面表示で質問 脱 初心者 09/8/25(火) 13:25 発言[未読]
【62712】Re:全画面表示で質問 ゆみこん 09/8/25(火) 15:21 発言[未読]
【62713】Re:全画面表示で質問 kanabun 09/8/25(火) 16:26 発言[未読]
【62717】Re:全画面表示で質問 とっちゃん 09/8/25(火) 20:19 お礼[未読]
【62725】Re:全画面表示で質問 kanabun 09/8/26(水) 1:07 発言[未読]
【62714】Re:全画面表示で質問 yoshi 09/8/25(火) 18:11 発言[未読]
【62718】Re:全画面表示で質問 とっちゃん 09/8/25(火) 20:22 回答[未読]
【62719】Re:全画面表示で質問 たかお 09/8/25(火) 20:29 発言[未読]
【63509】Re:全画面表示で質問 はちマン 09/11/14(土) 11:15 回答[未読]

【62706】全画面表示で質問
質問  とっちゃん  - 09/8/25(火) 12:26 -

引用なし
パスワード
   画面を広く使用するため全画面表示で使用しています。
プログラムは問題なく動作していますが、他の部署にプログラムをインストール
したところ、画面の上部が見えなくなると苦情が出ました。
調べたらタスクバーを最上部に設定しており、タスクバーがEXCEL画面の
最上部と重なっていることが判りました。
タスクバーがEXCEL画面が重ならないようにする方法はありませんか?
タスクバーを最下部に設定するようにお願いしましたが、長年この設定に
なれた方で何とかしてほしいと要望されています。
よろしくご指導下さい。

【62709】Re:全画面表示で質問
発言  脱 初心者  - 09/8/25(火) 13:25 -

引用なし
パスワード
   >プログラムは問題なく動作していますが、他の部署にプログラムをインストール
>したところ、画面の上部が見えなくなると苦情が出ました。

私なら、「使わなくて結構です」と回答します。

技術を得た者(vbaを覚えた者)が主導権を握れないなんて、
言語道断

【62712】Re:全画面表示で質問
発言  ゆみこん  - 09/8/25(火) 15:21 -

引用なし
パスワード
   使用者側の環境を調査してから作成すべきだったと思います。

本当に全画面表示が必要なのか、社内で再確認されるべき事かと。

【62713】Re:全画面表示で質問
発言  kanabun  - 09/8/25(火) 16:26 -

引用なし
パスワード
   ▼とっちゃん さん:

>タスクバーを最下部に設定するようにお願いしましたが、長年この設定に
>なれた方で何とかしてほしいと要望されています。

とりあえず、
タスクバーと[スタート]メニューのプロパティで、
  タスクバーを自動的に隠す(U)
にチェックを入れてもらってしのぐとか?

【62714】Re:全画面表示で質問
発言  yoshi  - 09/8/25(火) 18:11 -

引用なし
パスワード
   >画面を広く使用するため全画面表示で使用しています。
マクロで全画面表示にしてるのでしょうか。
そうであれば、マクロでの全画面表示をやめればいいはなし。
画面をどう使うかはユーザーの自由であって大きなお世話である。

【62717】Re:全画面表示で質問
お礼  とっちゃん  - 09/8/25(火) 20:19 -

引用なし
パスワード
   kanabunさん

ご回答ありがとうございます。
「タスクバーを自動的に隠す」機能があるとは知りませんでした。
とりあえず、これでしのぐ事を検討しますが、最終的には
タスクバーを最下段にする(慣れて頂く)のが最良の様ですね。
このサイトは、時々眺めていましたが、初めて質問しました。
なかなか難しいものですね。二度と質問する気になりません。
kanabunさんには感謝します

【62718】Re:全画面表示で質問
回答  とっちゃん  - 09/8/25(火) 20:22 -

引用なし
パスワード
   「VBA質問箱」のTopページには、
"Microsoft Excel の VBAに関するご質問を受け付けています。
親切な有志の方によって、回答がつきます。"とあります。
1.質問は、当然VBAに対する質問です。
2.VBAに関する回答がつくと理解しています。
----------------------------------
「脱 初心者」さんの回答は、VBAとは関係ない回答です。
ちょっと天狗になられているようですね。
「回答して頂かなくても結構です!」
-----------------------------------
「ゆみこん」さんの回答は、質問した者の失敗をあげつらうだけの
後から何とでも言える「べき論」です。
「全画面表示」が必要だから「全画面表示」にしています。
面白半分で「全画面表示」にしません。
あなたからの「回答」は不要だと確認しました。
-----------------------------------
「yoshi 」さん
VBA質問箱ですので、VBAの質問です。
あなたの言うマクロとはVBAのことですか?
マクロ=VBAなら当然イエスです。
"マクロ(VBA)での全画面表示をやめればいい"
="VBAを使用せずにユーザーが自由にEXCELを使えば良い。"
と(ちょっと極端ですが)同じに思えます。
VBAをどう使うかは私の自由であって大きなお世話です。

【62719】Re:全画面表示で質問
発言  たかお  - 09/8/25(火) 20:29 -

引用なし
パスワード
   ▼とっちゃん さん:
賛同します。
「二度と質問しない」と言わずに困った時には質問しましょう。
役に立ちますよ!!
私は、何度もお世話になっています。  たかお

【62725】Re:全画面表示で質問
発言  kanabun  - 09/8/26(水) 1:07 -

引用なし
パスワード
   ▼とっちゃん さん:

>「タスクバーを自動的に隠す」機能があるとは知りませんでした。
>とりあえず、これでしのぐ事を検討しますが、最終的には
>タスクバーを最下段にする(慣れて頂く)のが最良の様ですね。

ちょっとちがうと思いますけど?

Applicationウィンドウを最大化してタスクバーにはお隠れになって
もらうのでなく、タスクバーが「常に前面に表示」になっているときは
タスクバーをのぞくデスクトップエリアにExcel Windowを表示するのが
スジかと思います。

ちょっと調べてみましたら、タスクバーを除いたワークエリアを取得する
には SystemParametersInfo というAPI えばそれができるそうで、
試しに 標準モジュールに 以下をコピーして、
タスクバーのオプションを「常に表示」にしてから
タスクバーを画面の最上部や右端にドラッグして
Sub Try1()
を実行してみてください。

'-------------------------------- 標準モジュール
Option Explicit

Private Type RECT
  Left As Long
  Top As Long
  Right As Long
  Bottom As Long
End Type

' SystemParametersInfo 関数
Private Declare Function SystemParametersInfo Lib "USER32.DLL" _
  Alias "SystemParametersInfoA" ( _
  ByVal uAction As Long, _
  ByVal uParam As Long, _
  ByRef lpvParam As Any, _
  ByVal fuWinIni As Long _
 ) As Long

Private Const SPI_GETWORKAREA = 48 'ワークエリア取得

Private Declare Function GetDC Lib "user32" _
    (ByVal hWnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" _
    (ByVal hWnd As Long, ByVal hDC As Long) As Long
Private Declare Function GetDeviceCaps Lib "gdi32" _
  (ByVal hDC As Long, ByVal nIndex As Long) As Long


Sub Try1()
 Dim hDC As Long
 Const LOGPIXELSX = 88
 Const LOGPIXELSY = 90
 Dim ToPointX As Double, ToPointY As Double

 hDC = GetDC(0)
 ' 画面上のdpiを取得、Point長に変換する係数を得る
 ToPointX = 72 / GetDeviceCaps(hDC, LOGPIXELSX)
 ToPointY = 72 / GetDeviceCaps(hDC, LOGPIXELSY)
 ReleaseDC 0, hDC
 
 Dim Rec As RECT
 Dim ok As Long
 ' ワークエリアの長方形を取得
 ok = SystemParametersInfo(SPI_GETWORKAREA, 0&, Rec, 0&)
 
 'Excelウィンドウを ワークエリアいっぱいにセット
 With Application
   .WindowState = xlNormal
   .Left = Rec.Left * ToPointX
   .Top = Rec.Top * ToPointY
   .Width = (Rec.Right - Rec.Left) * ToPointX
   .Height = (Rec.Bottom - Rec.Top) * ToPointY
 End With

End Sub
'------------------------------------------------ ここまで

うまく表示されるようでしたら、このコードをそっくり
マクロのあるBookの ThisWorkbookモジュールに転記し、
Sub Try1()

Private Sub Workbook_Open()
に名前を変えて、運用してください。

【63509】Re:全画面表示で質問
回答  はちマン  - 09/11/14(土) 11:15 -

引用なし
パスワード
   全画面表示時にウィンドウを常に手前に表示することで回避できると思います
この方法については過去ログにあるので下記投稿を参照してみてください
 
参考)【47451】Re:常に前面に表示するには? Kein - 07/3/10(土) 22:39

3220 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free