目次
font.size=0~1000
今回は、「font.size=0」のようなエラーの発生が予想できる命令を実行して、エラーが発生しない値の上限下限を取得するテストを行ってみたいと思います。
今回は、セルのフォントサイズ、ワークシートの表示倍率の上限下限を調べてみました。

マクロの一例
以下のマクロを作成してみました。
「.Font.Size = 0」からループ処理がスタートするのでエラーが発生しますが、「On Error Resume Next」の記述があるので、次の行から処理を再開します。
Sub エラーの発生が予想できる命令_FontSize0()
Dim a As Long 'フォントサイズ
Dim b As Long '成功カウンタ
Dim c As Long 'エラー番号
For a = 0 To 1000
Err.Clear 'エラー番号リセット
On Error Resume Next 'エラー時、次の行から処理再開
ActiveCell.Font.Size = a 'Font.Size = 0 など、頻繁にエラーが発生します
c = Err.Number 'エラー番号保存
If c = 0 Then 'エラーが発生していない場合
b = b + 1 '成功カウントアップ
End If
If b = 1 Then '成功 1 回目
Debug.Print "最初に成功した a の値"; a
End If
If b > 0 And c <> 0 Then '成功後にエラー発生の場合
Debug.Print "最後に成功した a の値"; a - 1
Exit Sub 'マクロ途中終了
End If
Next
End Sub
上記マクロを下記の画像のワークシートの状態で実行してみます。

マクロを実行すると以下の画像のようになりました。 A1 セルのフォントサイズが「409」になっています。


VBE のイミディエイトウィンドウには以下の内容が出力されました。
最初に成功した a の値 1
最後に成功した a の値 409
結果のチェックとして以下のマクロも実行してみます。
Sub FontSize下限上限チェック()
On Error Resume Next
Err.Clear
ActiveCell.Font.Size = 0
Debug.Print "0 の結果="; Err.Number
Err.Clear
ActiveCell.Font.Size = 1
Debug.Print "1 の結果="; Err.Number
Err.Clear
ActiveCell.Font.Size = 409
Debug.Print "409 の結果="; Err.Number
Err.Clear
ActiveCell.Font.Size = 410
Debug.Print "410 の結果="; Err.Number
Err.Clear
ActiveCell.Font.Size = 0.9
Debug.Print "0.9 の結果="; Err.Number
Err.Clear
ActiveCell.Font.Size = 409.5
Debug.Print "409.5 の結果="; Err.Number
Err.Clear
ActiveCell.Font.Size = 409.6
Debug.Print "409.6 の結果="; Err.Number
End Sub
マクロを実行すると VBE のイミディエイトウィンドウに以下の内容が出力されました。 409 ではなく 409.5 までエラーが発生しないようです。
そういえば 10.5 のフォントサイズを設定出来ましたね。 0.5 ピッチのフォントサイズ設定は想定していませんでした。
0 の結果= 1004
1 の結果= 0
409 の結果= 0
410 の結果= 1004
0.9 の結果= 1004
409.5 の結果= 0
409.6 の結果= 1004
ActiveWindow.Zoom=0~1000
1 例目のマクロの
ActiveCell.Font.Size = a
の行を以下の記述に変更したマクロも実行してみます。ワークシートの表示倍率を設定する内容になっています。
ActiveWindow.Zoom = a
マクロを実行すると VBE のイミディエイトウィンドウに以下の内容が出力されました。ワークシートの表示倍率は 10 ~ 400 % まで設定可能なようです。
最初に成功した a の値 10
最後に成功した a の値 400
テスト環境
- Windows 10(64 ビット)
- Microsoft Office Excel 2003
以上、閲覧ありがとうございました。




