Excel VBA質問箱 IV

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

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


19438 / 76732 ←次へ | 前へ→

【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()
に名前を変えて、運用してください。

0 hits

【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 回答

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