|
とまとさんへ
この質問の記事をマルチポストしたことを謝ります。
申し訳ありませんでした。
>Sub test()
>Dim m As Long
>With ActiveSheet.PageSetup
> .FitToPagesWide = 1
> .FitToPagesTall = 1
>End With
>m = 100
>Do
>m = m + 1
>ActiveSheet.PageSetup.Zoom = m
>If Application.ExecuteExcel4Macro("Get.Document(50)") > 1 Then Exit Do
>Loop Until m = 400
>ActiveSheet.PageSetup.Zoom = m - 1
>End Sub
>とまとさんのと組み合わせると。
>
> 'Selectionに対して処理します。
> Dim i As Long
> Application.ScreenUpdating = False
> With ActiveWindow
> .Zoom = True
> i = .Zoom
> .Zoom = 100
> End With
> i = i * 1.1 '←これは係数のつもりです。環境や用紙サイズで変動すると思われます。
> If i > 400 Then i = 400
> With ActiveSheet
> .DisplayPageBreaks = False
> With .PageSetup
> Application.DisplayAlerts = False
> .PrintArea ="$A$1:$C$4"
> Application.DisplayAlerts = True
> .Zoom = i
> Do
> If ExecuteExcel4Macro("Get.Document(50)") = 1 Then Exit Do
> i = i - 5
> .Zoom = i
> Loop Until i < 10 '←てきとー
> End With
> End With
> Application.ScreenUpdating = True
上記2つのコードを実行しました。
とまとさんのは100%の倍率から1%増えていき、
Endさんのは400%から5%ずつ減っていくのはわかりました。
個人的にはマクロの勉強になったのですが、
上司から拡大縮小機能を100%のままでないと
注意されるので、どうしても仕事では使えそうにないです。
結局VBAでも拡大縮小機能を100%のまま固定して、入力されたデータの分だけ画面に表示させるのは難しいんですか?
|
|