忍者ブログ
26 April

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

25 September

【Excel/VBA】シート上の全セル幅を縦のピクセル数に合わせる

朝っぱらから譜読みとか、眠気つおいびゃああ、ということで、久々に。

しかし、思いつきで書いてみたら、エクセルの深淵を覗いてしまった…。

【今日の勉強ポイント】
・セルの高さ、幅は、Height、Widthだけではだめで、RowHeight、ColumnWidthでないと設定できない。
・セルサイズの単位であるポイントとやらはマジ、禁断魔法

'------------------------------------------------------------------------------------------------
Public Sub morning2013_9_25(Optional ByVal WS As Worksheet)
Dim Max_Column As Long, wkWid As Double
Dim i As Long
Dim Rng As Range

If WS Is Nothing Then Set WS = ThisWorkbook.Worksheets(1)

' (((ピクセル値 * 72 / 96) - 3.75) / 6) = ポイント値
' 【参照】http://yonaizumi.dip.jp/weblog/cappe/2009/03/vba-excel-1.html

' ↓も見ました
' 【参照】http://www.excel.studio-kazu.jp/tips/0015/

Set Rng = WS.Range("A1")

With Rng

wkWid = .RowHeight * 96 / 72
wkWid = (((wkWid * 72 / 96) - 3.75) / 6)

' シートの最大カラム数を取得 ※256固定なんだけど、将来要素も見て。
Max_Column = WS.Columns.Count

Application.ScreenUpdating = False ' 画面描画停止さんマジクールです。0.3秒くらい体感早くなるよ

For i = 1 To Max_Column

.Columns(i).ColumnWidth = wkWid

Next

Application.ScreenUpdating = True

End With

Set Rng = Nothing
Set WS = Nothing

End Sub
'------------------------------------------------------------------------------------------------

拍手

PR