目次

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 セルに A と入力されている。
A1 セルに A と入力されている。

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

A が大きくなっている。
A が大きくなっている。
フォントサイズが「409」になっている。
フォントサイズが「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

以上、閲覧ありがとうございました。

目次まで戻る

同じカテゴリの投稿(Excel VBA)

前後の投稿