ピクセル単位でセルの高さと幅を指定する
ピクセル単位でセルの高さと幅を指定する
記事「セルの縦と 横の比 」
記事「セルの高さ と幅の設定 」
でセルの高さと幅を設定しようとしてきました。
思ったとおりに高さと幅が設定できないので
またまた違う方法でアプローチしたいと思います。
msdnの該当ページによると
どうも最終的にセルの高さと幅を決める単位は
ピクセルのようなので
ピクセル単位でセルの高さと幅を指定したいと思います。
RowHeigthとColumnWidthは
それぞれポイント単位と文字単位で指定するので
直接ピクセル単位で指定はできません。
かといって
ピクセルをポイントに変換する関数などは
見当たらない。
そこで、もう何回も使っているあの比率を
くどくどと使っちゃいます。
幅 11.8ポイント:100ピクセル
高さ 75ポイント:100ピクセル
つまり
幅 0.118ポイント:1ピクセル
高さ 0.75ポイント:1ピクセル
この比率を使います。
ようするに単なる掛け算で
例えば、
幅を30ピクセルにしたかったら
まず
30 * 0.118 = 3.54 ポイント
のようにピクセルからポイント単位に変換してから
ColumnWidthに使う。
そうするとこの様になります。
Cells.ColumnWidth = 30 * 0.118
汎用性を持たせるために
以下のコードでは
30のところを変数にして
いろいろと設定できるようにしました。
コードはこちら
Sub macro100211a() |
実行後のセルはこの様になりました。
上のコードでは
セル全部を正方形に変更しました。
今度は高さと幅の両方を設定できるようにします。
また、再利用性を考えて
高さと幅を設定するプロシージャを独立させて
そのプロシージャを
他のプロシージャから呼び出すことにしました。
下のコードでは macro100211b において
SetCellsHW プロシージャを呼び出して
値を渡しています。
MyHeightに高さ、MyWidthに幅を指定します。
コードはこちら
macro100211b の方を実行してください。
Sub macro100211b() Cells.RowHeight = MyHeight * 0.75 End Sub |
実行後のセル
正方形にする方のコードで
いろいろな値を試しましたが
値が小さいと正方形に見えないくらい
高さと幅に差が出るようです。
| 固定リンク
この記事へのコメントは終了しました。

コメント