回答編集履歴
6
修正
answer
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
Sub test()
|
23
23
|
'AutoFontSize ThisDocument.Shapes(1)
|
24
24
|
Dim shp As Shape
|
25
|
-
For Each shp In ThisDocument.Sections(1).Headers(wdHeaderFooterFirstPage).Range.ShapeRange
|
25
|
+
For Each shp In ThisDocument.Sections(1).Headers(wdHeaderFooterFirstPage).Shapes 'Range.ShapeRange
|
26
26
|
AutoFontSize shp
|
27
27
|
Next
|
28
28
|
End Sub
|
5
しゅうせい
answer
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
Sub test()
|
23
23
|
'AutoFontSize ThisDocument.Shapes(1)
|
24
24
|
Dim shp As Shape
|
25
|
-
For Each shp In ThisDocument.Sections(1).Headers(wdHeaderFooterFirstPage).
|
25
|
+
For Each shp In ThisDocument.Sections(1).Headers(wdHeaderFooterFirstPage).Range.ShapeRange
|
26
26
|
AutoFontSize shp
|
27
27
|
Next
|
28
28
|
End Sub
|
4
修正
answer
CHANGED
@@ -20,7 +20,11 @@
|
|
20
20
|
下記は少し長いですが上記手順をコード化したものです。
|
21
21
|
```
|
22
22
|
Sub test()
|
23
|
-
AutoFontSize ThisDocument.Shapes(1)
|
23
|
+
'AutoFontSize ThisDocument.Shapes(1)
|
24
|
+
Dim shp As Shape
|
25
|
+
For Each shp In ThisDocument.Sections(1).Headers(wdHeaderFooterFirstPage).Shapes 'Range.ShapeRange
|
26
|
+
AutoFontSize shp
|
27
|
+
Next
|
24
28
|
End Sub
|
25
29
|
|
26
30
|
Sub AutoFontSize(shp As Shape)
|
3
修正
answer
CHANGED
@@ -20,43 +20,45 @@
|
|
20
20
|
下記は少し長いですが上記手順をコード化したものです。
|
21
21
|
```
|
22
22
|
Sub test()
|
23
|
-
AutoFontSize Shapes(1)
|
23
|
+
AutoFontSize ThisDocument.Shapes(1)
|
24
24
|
End Sub
|
25
25
|
|
26
|
-
Sub AutoFontSize(shp
|
26
|
+
Sub AutoFontSize(shp As Shape)
|
27
27
|
Dim orgH As Double '元の高さ
|
28
28
|
Dim orgW As Double '元の幅
|
29
|
-
|
29
|
+
|
30
30
|
Dim newH As Double 'AutoSize後の高さ
|
31
31
|
Dim newW As Double 'AutoSize後の幅
|
32
|
-
|
32
|
+
|
33
33
|
Dim newSize As Double
|
34
|
-
|
34
|
+
|
35
35
|
Dim addMode As Integer 'サイズ変更モード
|
36
|
-
|
36
|
+
|
37
37
|
With shp
|
38
38
|
'シェイプの元のサイズを記憶
|
39
39
|
orgH = .Height
|
40
40
|
orgW = .Width
|
41
|
-
|
41
|
+
|
42
42
|
'元のフォントサイズのままAutoSize
|
43
43
|
.TextFrame.AutoSize = True
|
44
|
-
|
44
|
+
|
45
45
|
'AutoSize後のサイズを取得
|
46
46
|
newH = .Height
|
47
47
|
newW = .Width
|
48
|
-
|
48
|
+
|
49
|
-
If (orgH > newH) And (orgW > newW) Then
|
49
|
+
If (orgH >= newH) And (orgW >= newW) Then
|
50
50
|
'幅も高さも小さくなった場合
|
51
51
|
addMode = 1 'フォントを大きくするモード
|
52
52
|
Else
|
53
53
|
'幅または高さが大きくなった場合
|
54
54
|
addMode = 2 'フォントを小さくするモード
|
55
55
|
End If
|
56
|
-
|
56
|
+
|
57
57
|
'現在のフォントサイズを格納
|
58
|
-
newSize = .TextFrame2.TextRange.Font.Size
|
58
|
+
'newSize = .TextFrame2.TextRange.Font.Size
|
59
|
-
|
59
|
+
shp.Select
|
60
|
+
newSize = Int(Selection.Font.Size)
|
61
|
+
|
60
62
|
Do
|
61
63
|
'サイズ変更
|
62
64
|
Select Case addMode
|
@@ -65,57 +67,66 @@
|
|
65
67
|
Exit Do
|
66
68
|
Else
|
67
69
|
'フォントサイズを+1
|
68
|
-
.TextFrame2.TextRange.Font.Size = .TextFrame2.TextRange.Font.Size + 1
|
70
|
+
'.TextFrame2.TextRange.Font.Size = .TextFrame2.TextRange.Font.Size + 1
|
71
|
+
.TextFrame.AutoSize = False
|
72
|
+
Selection.Font.Size = Selection.Font.Size + 1
|
73
|
+
.TextFrame.AutoSize = True
|
69
74
|
End If
|
70
75
|
Case Else 'フォントを下げるモード
|
71
76
|
If newSize < 2 Then
|
72
77
|
Exit Do
|
73
78
|
Else
|
74
79
|
'フォントサイズを-1
|
75
|
-
.TextFrame2.TextRange.Font.Size = .TextFrame2.TextRange.Font.Size - 1
|
80
|
+
'.TextFrame2.TextRange.Font.Size = .TextFrame2.TextRange.Font.Size - 1
|
81
|
+
.TextFrame.AutoSize = False
|
82
|
+
Selection.Font.Size = Selection.Font.Size - 1
|
83
|
+
.TextFrame.AutoSize = True
|
76
84
|
End If
|
77
85
|
End Select
|
78
|
-
|
86
|
+
|
79
87
|
'変更後のフォントでAutoSize
|
80
88
|
'.TextFrame.AutoSize
|
81
|
-
|
89
|
+
|
82
90
|
'AutoSize後のサイズを取得
|
83
91
|
newH = .Height
|
84
92
|
newW = .Width
|
85
|
-
|
86
|
-
|
93
|
+
|
94
|
+
|
87
95
|
Select Case addMode
|
88
96
|
Case 1 'フォントを上げるモード
|
89
|
-
If (orgH > newH) And (orgW > newW) Then
|
97
|
+
If (orgH >= newH) And (orgW >= newW) Then
|
90
98
|
'幅も高さも小さくなった場合、まだ小さい。⇒ループ継続
|
91
99
|
Else
|
92
100
|
'大きくなりすぎた為、前回のフォントサイズが最適。⇒ループ終了
|
93
101
|
Exit Do
|
94
102
|
End If
|
95
103
|
Case Else 'フォントを下げるモード
|
96
|
-
If (orgH > newH) And (orgW > newW) Then
|
104
|
+
If (orgH >= newH) And (orgW >= newW) Then
|
97
105
|
'幅も高さも小さくなった場合
|
98
106
|
'現在のフォントサイズが最適。⇒ループ終了
|
99
|
-
newSize = .TextFrame2.TextRange.Font.Size
|
107
|
+
'newSize = .TextFrame2.TextRange.Font.Size
|
108
|
+
newSize = Selection.Font.Size
|
100
109
|
Exit Do
|
101
110
|
Else
|
102
111
|
'幅または高さが大きくなった場合、まだ大きい。⇒ループ継続
|
103
112
|
End If
|
104
113
|
End Select
|
105
|
-
|
114
|
+
|
106
115
|
'現在のフォントサイズを格納
|
107
|
-
newSize = .TextFrame2.TextRange.Font.Size
|
116
|
+
'newSize = .TextFrame2.TextRange.Font.Size
|
108
|
-
|
117
|
+
newSize = Selection.Font.Size
|
118
|
+
|
109
119
|
Loop
|
110
|
-
|
120
|
+
|
111
121
|
'最適フォントサイズを適用
|
112
122
|
.TextFrame.AutoSize = False
|
113
|
-
.TextFrame2.TextRange.Font.Size = newSize
|
123
|
+
' .TextFrame2.TextRange.Font.Size = newSize
|
114
|
-
|
124
|
+
Selection.Font.Size = newSize
|
125
|
+
|
115
126
|
'元のサイズに戻す
|
116
127
|
.Height = orgH
|
117
128
|
.Width = orgW
|
118
|
-
|
129
|
+
|
119
130
|
End With
|
120
131
|
|
121
132
|
End Sub
|
2
修正
answer
CHANGED
@@ -95,7 +95,7 @@
|
|
95
95
|
Case Else 'フォントを下げるモード
|
96
96
|
If (orgH > newH) And (orgW > newW) Then
|
97
97
|
'幅も高さも小さくなった場合
|
98
|
-
'現在のフォントサイズ
|
98
|
+
'現在のフォントサイズが最適。⇒ループ終了
|
99
99
|
newSize = .TextFrame2.TextRange.Font.Size
|
100
100
|
Exit Do
|
101
101
|
Else
|
1
syuusei
answer
CHANGED
@@ -87,7 +87,7 @@
|
|
87
87
|
Select Case addMode
|
88
88
|
Case 1 'フォントを上げるモード
|
89
89
|
If (orgH > newH) And (orgW > newW) Then
|
90
|
-
'幅も高さも小さくなった場合⇒ループ継続
|
90
|
+
'幅も高さも小さくなった場合、まだ小さい。⇒ループ継続
|
91
91
|
Else
|
92
92
|
'大きくなりすぎた為、前回のフォントサイズが最適。⇒ループ終了
|
93
93
|
Exit Do
|
@@ -95,11 +95,11 @@
|
|
95
95
|
Case Else 'フォントを下げるモード
|
96
96
|
If (orgH > newH) And (orgW > newW) Then
|
97
97
|
'幅も高さも小さくなった場合
|
98
|
-
'現在のフォントサイズ
|
98
|
+
'現在のフォントサイズのフォントサイズが最適。⇒ループ終了
|
99
99
|
newSize = .TextFrame2.TextRange.Font.Size
|
100
100
|
Exit Do
|
101
101
|
Else
|
102
|
-
'幅または高さが大きくなった場合⇒ループ継続
|
102
|
+
'幅または高さが大きくなった場合、まだ大きい。⇒ループ継続
|
103
103
|
End If
|
104
104
|
End Select
|
105
105
|
|