適当にネットを眺めてたらエクセルの会社で使えそうなマクロを見つけたんでメモ的な感じで( *´艸`)
なにやらこれを実行するとエクセルが常に前面に表示されますw
___________________________________
Option Explicit
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal X As Long, ByVal Y As Long, _
ByVal cx As Long, ByVal cy As Long, _
ByVal wFlags As Long) As Long
___________________________________
Sub 前面設定()
Call SetWindowPos(Application.hwnd, -1, 0, 0, 0, 0, &H40 Or &H1 Or &H2)
End Sub
___________________________________
Sub 前面設定解除()
Call SetWindowPos(Application.hwnd, -2, 0, 0, 0, 0, &H40 Or &H1 Or &H2)
End Sub
___________________________________
まぁこんな感じらしいです(´-∀-`;)
Option Explicit は最初の宣言らしく、まぁとりあえずここで言ってるのは
このモジュールではuser32っていう関数がいっぱい入ったDLLファイルを呼び出してきてSetWindowPos関数をやりますという宣言ですかねw
細かく言うと
SetWindowPos関数は表示とか位置とかを設定する関数だそうです
括弧の中はこの関数の引数の定義になってて
hwnd、hwndInsertAfter、X、Y、cx、cy、wFlags が引数になってます
hwnd は ウィンドウのハンドル
hwndInsertAfter は 変数となってて、「1」で窓が後ろに、「0」で窓が手前に、「-1」で常に手前に、「-2」で設定解除になりまふ(ノ∀`)
X は 窓のx座標
Y は y座標
cx は 幅
cy は 高さ
wFlag は 表示、位置、サイズをいれる変数ですʅ( ‾⊖◝)ʃ
ByVal は 引数の値渡しの意味を持ってます
As は 「~として」 英語(´;д;`)ヤダ
long は 長整数型の変数定義です。
他にも文字列型の「string」とか整数型の「integer」があります
なんでここでは「integer」でなく「long」を使ってるかというと
その窓の変数である「Application.hwnd」は桁が大きいからです@@;
俺はエクセルの窓のこの変数は「5048562」になりました^^;
みんな一緒なんかな?
Subからが実行するマクロになってます
まぁ上にあげた引数を一つずつ入れていくだけですねw
サイズや位置は変えないので0を入れます
&H40 は表示する
&H1 は位置変えん
&H2 はサイズ変えん って意味です
下のマクロを実行すると元に戻ります(*´-д-)-3
じゃあこんな感じでw
やっぱり意味は深く考えないほうがいいかもしれないですな
出来ればいいってことで(≧∇≦)
まぁこのマクロ作ろうにも働く場所変わったからダメなんですけどね(´▽`*)
友達に頼むかな( *´艸`)
なにやらこれを実行するとエクセルが常に前面に表示されますw
___________________________________
Option Explicit
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal X As Long, ByVal Y As Long, _
ByVal cx As Long, ByVal cy As Long, _
ByVal wFlags As Long) As Long
___________________________________
Sub 前面設定()
Call SetWindowPos(Application.hwnd, -1, 0, 0, 0, 0, &H40 Or &H1 Or &H2)
End Sub
___________________________________
Sub 前面設定解除()
Call SetWindowPos(Application.hwnd, -2, 0, 0, 0, 0, &H40 Or &H1 Or &H2)
End Sub
___________________________________
まぁこんな感じらしいです(´-∀-`;)
Option Explicit は最初の宣言らしく、まぁとりあえずここで言ってるのは
このモジュールではuser32っていう関数がいっぱい入ったDLLファイルを呼び出してきてSetWindowPos関数をやりますという宣言ですかねw
細かく言うと
SetWindowPos関数は表示とか位置とかを設定する関数だそうです
括弧の中はこの関数の引数の定義になってて
hwnd、hwndInsertAfter、X、Y、cx、cy、wFlags が引数になってます
hwnd は ウィンドウのハンドル
hwndInsertAfter は 変数となってて、「1」で窓が後ろに、「0」で窓が手前に、「-1」で常に手前に、「-2」で設定解除になりまふ(ノ∀`)
X は 窓のx座標
Y は y座標
cx は 幅
cy は 高さ
wFlag は 表示、位置、サイズをいれる変数ですʅ( ‾⊖◝)ʃ
ByVal は 引数の値渡しの意味を持ってます
As は 「~として」 英語(´;д;`)ヤダ
long は 長整数型の変数定義です。
他にも文字列型の「string」とか整数型の「integer」があります
なんでここでは「integer」でなく「long」を使ってるかというと
その窓の変数である「Application.hwnd」は桁が大きいからです@@;
俺はエクセルの窓のこの変数は「5048562」になりました^^;
みんな一緒なんかな?
Subからが実行するマクロになってます
まぁ上にあげた引数を一つずつ入れていくだけですねw
サイズや位置は変えないので0を入れます
&H40 は表示する
&H1 は位置変えん
&H2 はサイズ変えん って意味です
下のマクロを実行すると元に戻ります(*´-д-)-3
じゃあこんな感じでw
やっぱり意味は深く考えないほうがいいかもしれないですな
出来ればいいってことで(≧∇≦)
まぁこのマクロ作ろうにも働く場所変わったからダメなんですけどね(´▽`*)
友達に頼むかな( *´艸`)