Excel VBA テクニック集 |
|
列の幅の取得・設定です。 取得した数値のタイプはDoubleです。ただし、標準フォントの 半角1 文字分が1単位ですので注意してください。 使い方は、ファイル一覧を使った応用の、「マクロ専用ファイル」によるマクロ実行に、下記コードを入れます。 の幅を取得するコードは、 Debug.Print Excel_App.ActiveSheet.Columns("C").ColumnWidthになります。 自動調整する場合は、 Excel_App.ActiveSheet.Columns("C:H").Columns.AutoFitのようにAutoFitメソッドを使います。 ところで、HeightとWidthの扱いに違いがあります。3行の高さを調べると、 Height = 18 , RowHeight = 18 になります。それぞれの単位はPointです。 C列の幅を調べると、 Width = 63.75 , ColumnWidth = 10 になります。 Widthについては、Height,RowHeightと同じ単位系になってますが、ColumnWidthについては、最初に説明したように半角文字数です。 さらに、上記のようにWidthはセルの幅になりますが、ColumnWidthはセルに入る文字数になってます。 ColumnWidth = 10 のとき Width = 63.75 です。ColumnWidth = 20 のとき Width = 123.75 になってます。倍にはなりません。 ColumnWidth , Width の増加分により、1文字当たりの Width が計算できます。空白幅も計算できます。 Width/1文字 = (123.75 - 63.75) / 10 空白幅 = 63.75 - Width/1文字 * 10 計算結果の単位が(Point)です。 (Pixel) = (Point) * 20 / 15 により、単位をピクセルに変換できます。 悪いことに、セルの幅を設定する場合です。
そこで、 Width(Pixel)をWidth(Point)に変換 (Width(Point) - 空白幅) / (Width/1文字) により、Width(Pixel)からColumnWidthが計算できます。 |
「こだわりハウス」写真館| 数学公式集| ピンポイントストリートビュー| FaceBook| Excel Vba テクニック集| Excel 計算式解析・他解析| 富山の建築家| Excel 計算式解析・他解析| 積分の定義・積分の記号の意味の研究| |