ウィンドウの上部と行1の間の距離の計算(Microsoft Excel)
ユーザーフォームを作成するとき、ルイはユーザーフォームのTopプロパティを222に設定します。これは試行錯誤によって、アクティブウィンドウの上部境界とワークシートのデータの最初の行の上部との間のピクセル距離です。表示されるリボンの量と数式バーの高さによって距離が異なる可能性があることを考えると、この距離をプログラムで計算する方法があるかどうか疑問に思います。
リボン領域の高さを取得する必要がある場合は、次の方法でCommandBars( “Ribbon”)オブジェクトのHeightプロパティを調べることができます。
iHt = CommandBars("Ribbon").Height
もちろん、それはあなたが最終的に必要とする情報の一部だけをあなたに与えるでしょう。ユーザーフォームの位置情報は、プログラムウィンドウの左上隅に基づいています。したがって、ウィンドウの境界線の厚さ(境界線がある場合)、リボンの高さ(上記、ただしリボンを使用するバージョンのExcelで実行している場合のみ)、数式バーの高さを考慮する必要があります。 、定規に許可されているスペースなど。
これらのほとんどには、確認できる高さプロパティがないため、ユーザーフォームの配置は試行錯誤のプロセスになる可能性があります。
ユーザーフォームをシステムに正しく配置すると、他の人のシステムに表示された場合に正しく配置される保証はありません。
私たちが見つけた最善の解決策は、(この場合)車輪の再発明をしないことです。 Chip Pearsonは、彼のWebサイトで、ユーザーフォームの配置から当て推量を排除する「フォームポジショナー」と呼ばれるものを作成しました。あなたはここでそれに関する情報を見つけることができます:
http://www.cpearson.com/Excel/FormPosition.htm
無料です。これは無料。これにより、画面上の任意のセルを基準にしてユーザーフォームを配置できます。 UserFormsに依存するマクロを開発する場合は、Chipが提供するものを確認する必要があります。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(2309)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。