Gizport
1 回答
0
Share (facebook)
121
view
全般

エクセルVBAの質問です。Windows画面の幅(Width)、高さ...

エクセルVBAの質問です。Windows画面の幅(Width)、高さ(Height)を知る方法を
教えてください。UserFormのプロパティを(StartUpPosition=0:手動)に設定し、
UserFormの表示位置を操作します。 解像度をポイント単位で得るにはどの様にすればできますか?

Exceleバージョンが2003以降では、IAccessibleインターフェイスを使用して
簡単に実現できましたが,旧Excele2000ではこれは利用できません。
そこでAPI関数で下記のようにするとWindowsのピクセル単位での解像度は
判りますが、ポイント単位に変換できません。
(1ポイントは、1/72 インチ/Me.Leftなどの単位)

Option Explicit ’標準モジュール
Public Declare Function GetDesktopWindow Lib "USER32" () As Long
Public Declare Function GetWindowRect Lib "USER32" _
(ByVal hWnd As Long, lpRect As RECT) As Long
Public Type RECT
API_左 As Long
API_上 As Long
API_右 As Long
API_下 As Long
End Type


Public Sub SYS_WinAPI_画面サイズ獲得_SUB()
’Windowsデスクトップの解像度(ピクセル)を獲得
Dim mMsg as String
Dim mRes as Integer

Dim Ret As Long
Dim nRect As RECT
Ret = GetDesktopWindow
Call GetWindowRect(Ret, nRect)
'
mMsg = " 左上のx座標は" & nRect.API_左 _
& " 左上のy座標は" & nRect.API_上 & vbCrLf _
& " 右下のx座標は" & nRect.API_右 _
& " 右下のy座標は" & nRect.API_下
mRes = MsgBox(mMsg, 48, "GetWindowRect")
End If
'
この値(上・左・右・下)をポイントに変換するためにAPI関数
(GetDeviceCaps(Form.hdc, VERTSIZE))
を利用使用とすると、ExcelのUserFormにはhdcに対応する
(デバイスコンテキストのハンドル)プロパティがありません。

ピクセル単位-->ミリ単位-->インチ単位--->ポイント単位へ変更できません。

<もう一度質問を整理します>
Windowsデスクトップの解像度(ピクセル)をUserFormプロパティの(ポイント)に
変換する方法を教えてください。

どうかよろしくお願いいたします。
Yahoo!知恵袋 5269日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
≪参考≫
ピクセル(画素)、ポイント、ミリメートルの変換
http://himitsu.jpn.ph/yomimono/misc/dpi.html

Wordなら
PixelsToPointsメソッドがあったと思います。
Yahoo!知恵袋 5268日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
25
Views
質問者が納得単純に並び替えだけならペイントでもできますが、透明色に関してはペイント使わないほうがいいです。ペイントじゃ一部の色以外透明色に設定できません。 2000の素材は256色画像なので256色で編集できるドットエディタで編集したほうが早いです。 EDGEなどのドットエディタで開いてみれば1番左上の色が透明色になってます。 (透明色は大抵背景色として使われている色が指定されていると思います。) 単純に並び替えても2000のマップは16*16、VX Aceは32*32なので一マスのサイズが倍になっていることも注意が...
3716日前view25
全般
33
Views
質問者が納得>最初充電したときはできましたが、それから2回目やろうとしたらできなくなりました。 単なる電池切れでしょうね。電池を入れ替えてみましょう。 (ちなみに、電池で動く全ての物について共通しますが、調子が悪いと思ったらまず新品の電池を入れることです。「なんか調子悪い」という相談の9割は電池が原因です) どんなタイプか知りませんが、単3電池×4本という前提で回答しますと、 ◇アルカリ電池・・・iPhone の7割前後の充電量を確保できる (※ 電池によって大きく変動するので参考程度に) ◇エネループ・・・・...
3751日前view33
全般
36
Views
質問者が納得申し訳ないんですが、私は自宅作業ではMAC環境は使っておらず、DAWもProtoolsは使っていません。 自宅以外の場所では、MAC+Protools環境を触ることも無いことは無いですが、機器関係のセットアップは済んだ状態でコンソールを触るだけで、コントローラも現場に完備のものを使うだけなので、BCF2000は使っていません。 (フィジコンモードのデジタルミキサーがスタンバイしてあるので、何もBCF2000なんか持ち込む必要がない場所に限るため) なので、ちょっと自信がないんですが・・・ 私が持っている...
3830日前view36
全般
26
Views
質問者が納得PC[USB端子]→USBケーブル→DA-100ーイヤホン/ヘッドホン と単純にしてはどうですか? 私は、DA-200を使っておりますが、ノイズはありません PC[USB端子]→USBケーブル→DA-200ーイヤホン/ヘッドホン 恥ずかしながら、いまだに、itunesを使っています。
3933日前view26
全般
46
Views
質問者が納得普通にReplayGainを使えばいいのでは? ・事前にMIDIファイルの音量解析をしておく (右クリック > ReplasyGain > Scan per-file track gain) ・変換の際に、ProcessingにてReplayGainを有効にする (mode=track、processing=apply gain) ・必要なら、上記でPreampのスライダーも調整 これで出力WAVファイルの音量は調整できるはずです。 因みに当方では、仰るような用途にはXMPlayを使ってい...
3920日前view46

関連製品のQ&A