
taka



最新記事 by taka (全て見る)
- 『雑記』最近の私の話~ - 2019年9月26日
- 【動画】自作パソコン構成変更!ケースをNZXT H500に交換しました! - 2019年6月5日
- VBA 『Array関数』指定した要素で配列を作成する - 2019年5月23日
- 「動画」初完全ワイヤレスイヤホン『Jabra Elite Active 65t』 - 2019年5月17日
- VBA 日付で令和を簡単に判定してみよう - 2019年5月7日
どうも、takaです、みなさんVBAを使用していて「userfoamのサイズを変更したいなぁ」なんてこと思ったことはありませんか?
実際気になって検索してみると「API」を使用した方法など、結構ハードルが高いイメージがありますよね?
ですが、本当は簡単に変更する方法があります\(◎o◎)/!
確かに「ウィンドウに合わせて全画面」などはAPIを使わないかもしれませんが、ただモニターを変更したときや目が悪い人が見るときに大きさを変えたい時などに使う場合には今回ご紹介する方法で解決できると思いますので是非お使いください( ^^) _旦~~
モニター解像度によるユーザーフォームのサイズ変更の必要性


ユーザーfフォームのサイズ変更の必要性・・・それは画面の解像度によってユーザーフォームのサイズが変わることです(*_*;
一昔のパソコン画面では画面いっぱいに設定してあったユーザーフォームも、最近のパソコンのモニターの解像度で表示するとかなり小さく表示されてしまいます(T_T)
前のモニターの解像度に最適化してあったサイズ作成していた場合でも、新しいモニターでは見づらくなってしまうのです(T_T)/~~~
ですが手作業でのサイズ変更もなかなか大変な作業ですよね、textboxやボタン、リストボックス・・・さまざまなコントロールを配置していた場合、それぞれを一つずつサイズ変更するのはかなりの労力と時間が必要だと思われます(ー_ー)!!
なのでこの労力を少なくするコードをお伝えいたします(^.^)
ユーザーフォームのサイズ変更の方法
さて、ここに縦・横のサイズが約200の正方形のユーザーフォームを用意いたしました、このユーザーフォームのサイズを変更したい、ではまずはじめに何をするか?
ユーザーフォームの設定を変更しようとするときに一番初めに気にするのはプロパティウィンドウだと思います、それで正解です!!
では、プロパティウィンドウにそれらしい項目を探してみると「zoom」という項目がありますよね?まずはこの数字を変えてみましょう(^^)


「zoom」の値は既定の100になっています。これを150に変更してみます


中のtextboxだけが大きくなったのがお分かりいただけますでしょうか?(^<^)
そう、プロパティの「zoom」は「フォーム上のコントロールの表示を大きくする」だけでフォームの大きさは変更されません。
なので、これではサイズ変更には向きません(*_*;
高さ・横も変更しなければコントロールが表示しきれなく切れて表示されてしまうことになってしまいます( 一一)
逆に言えば、高さ・横・zoomを同じ率で変更すればきれいに変更できるというわけです\(◎o◎)/!
では早速、高さ・横・zoomを変更するコードを書いていきましょう!(^^)!
サンプルコード
Private Sub UserForm_Initialize() UserForm1.Zoom = 150'←-----↓は同じ数字--- UserForm1.Height = 200.25 * 150/ 100 '| ' ↓------------ UserForm1.Width = 200.25 * 150/ 100 End Sub
念のためサンプルコードの説明をさせていただきますと
UserForm1.Zoom = 150
これは見ての通りですね、UserForm1のZoom を 150に変更するというコード
続いてはUserForm1.Height = 200.25 * 150/ 100
これはUserForm1の高さの200.25をもとに高さを150%にします。というコードです
UserForm1.Width の部分も同じです。
このようにズームと同じ%で高さ、横を変更しているので見栄えが変わらなく表示崩れ無しで拡大表示が可能です。
zoomの数値と縦・横の数値(サンプルコードの150の部分)を同じ数字にしなかった場合は表示崩れを起こします。
上のサンプルコードの部分を変数やシート上の数値に指定することで、ユーザーフォームを自分の好きな大きさへとサイズ変更ができるようになります!(^^)!
デザインの関係や、使う人によって大きさを変えたい時などに有効ですのでぜひ活用してください(^.^)
Ps.使い方は自由ですが個人的には「Initialize」での使用がおすすめです。
フォロー・チャンネル登録お願いします
VBA以外についてのブログはこちら↓
https://yb-log.com/■Twitterフォロー
Follow @taka_pc1027■YouTubeチャンネル登録
コメントを残す