13 すべてのコントロールのフォントを変更する

フォームのControlsコレクションからControlオブジェクトをループで取り出し、それぞれについてフォント関連プロパティを同様に設定することで、複数コントロールをまとめてフォント変更することができます。

次のプログラムでは、「FontName」プロパティで”フォントの種類”を、また「FontSize」プロパティで”フォントサイズ”を、アクティブフォームのすべてのコントロールに対して同じ値に設定しています。
  • LabelNameプロパティは「Control.LabelName」という表記では参照できません。「Control.Properties("LabelName")」のように書く必要があります。
  • フォントに関するプロパティはすべてのコントロールが持っているわけではありません。チェックボックス、オプションボタン、イメージ、四角形などのコントロールは文字を表示しませんので、フォント関連プロパティはありません。そのようなコントロールのFontNameプロパティなどを参照するとエラーが発生しますので、次のプログラムではその場合のエラー(エラー番号 438)は無視して続行するようにしています。
プログラム

Sub SampleCode_13()
'すべてのコントロールのフォントを変更する

  Dim ctl As Control
  Dim strLableName As String

  On Error GoTo Err_Handler

  'アクティブフォームのすべてのコントロールのループ
  For Each ctl In Screen.ActiveForm.Controls
    With ctl
      .FontName = "游明朝"    'フォントの種類
      .FontSize = 12          'フォントのサイズ
    End With
  Next ctl

Exit_Here:
  Exit Sub

Err_Handler:
  If Err.Number = 438 Then
    'フォントを持たないコントロールへの設定エラー時
    Resume Next
  Else
    Beep
      MsgBox "エラー番号 : " & Err.Number & vbCrLf & _
             "エラー内容 : " & Err.Description, _
             vbOKOnly + vbCritical
  End If
  Resume Exit_Here:

End Sub

実行例
■実行前

■実行後
| Index | Prev | Next |



Copyright © T'sWare All rights reserved