Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5330 / 13646 ツリー ←次へ | 前へ→

【51459】コントロールのフォント名を一括変更で みそじのおじさん 07/9/19(水) 21:14 質問[未読]
【51461】Re:コントロールのフォント名を一括変更で ichinose 07/9/19(水) 22:11 発言[未読]
【51472】Re:コントロールのフォント名を一括変更で みそじのおじさん 07/9/20(木) 12:35 お礼[未読]

【51459】コントロールのフォント名を一括変更で
質問  みそじのおじさん  - 07/9/19(水) 21:14 -

引用なし
パスワード
   2回目の投稿です。よろしくお願いします。

ユーザーフォーム上に、20個近くコマンドボタン、テキストボックス、ラベルなどが
あります。現在、このコントロールのフォント名はすべてMSゴシックになっていて、それをすべてMS明朝に変更がしたく下記のコードをかきました。

Private Sub UserForm_Initialize()
 
 Dim X as Variant
  
  For Each X In Me.Controls
    Me.Controls(X.Name).Font.Name="MS 明朝"
  Next
End Sub

これを、ローカルウィンドウで確認しながら、デバッグするとFontの部分は確かにMS明朝と書き換えられているのに、実際のユーザーフォーム上の文字の種類はMSゴシックの
まま、という状態です。これは何故なんでしょうか?

 

【51461】Re:コントロールのフォント名を一括変更で
発言  ichinose  - 07/9/19(水) 22:11 -

引用なし
パスワード
   ▼みそじのおじさん さん:
こんばんは。


>
>ユーザーフォーム上に、20個近くコマンドボタン、テキストボックス、ラベルなどが
>あります。現在、このコントロールのフォント名はすべてMSゴシックになっていて、それをすべてMS明朝に変更がしたく下記のコードをかきました。
>
>Private Sub UserForm_Initialize()
> 
  on error resume next
> Dim X as Variant
  dim wk as string  
>  For Each X In Me.Controls
'Xはコントロールですから、このまま使いましょう
    X.Font.Name="MS 明朝"
    wk = X.Caption
    X.Caption = ""
    X.Caption = wk
    wk = X.Text
    X.Text = ""
    X.Text = wk
>  Next
>End Sub

CaptionやTextプロパティを入れ換えてやるとうまくいきました。
(Excel2002で確認)

>
>これを、ローカルウィンドウで確認しながら、デバッグするとFontの部分は確かにMS明朝と書き換えられているのに、実際のユーザーフォーム上の文字の種類はMSゴシックの
>まま、という状態です。これは何故なんでしょうか?

理由は、わかりませんが・・・。

【51472】Re:コントロールのフォント名を一括変更で
お礼  みそじのおじさん  - 07/9/20(木) 12:35 -

引用なし
パスワード
   ▼ichinose さん:

ご回答ありがとうございます。
提示して頂いたコードを使ってやり直してみました。しかし結果は変わりませんでした。
なんでーと思いつつ、新規ブックに新しくフォームをつくり直してもやってみましたが
結果は変わらずでした。まさかとは思いながら"MS 明朝"のMSと明朝の間のスペース
を全角から半角に変えた処作動するようになりました。(私が参考にしていた本にはMSとスペースは全角でと書いてあったのですが....) 

>>Private Sub UserForm_Initialize()
>> 
>  on error resume next
>> Dim X as Variant
>  dim wk as string  
>>  For Each X In Me.Controls
>'Xはコントロールですから、このまま使いましょう
>     X.Font.Name="MS 明朝" <<"MS 明朝" これで動きました。
     wk = X.Caption
>    X.Caption = ""
>    X.Caption = wk
>    wk = X.Text
>    X.Text = ""
>    X.Text = wk
>>  Next
>>End Sub

話は変わりますが、これをやりたかった理由は私がフォームのデザインを手作業でしている時に、イチローの打率より高い確率でプロパティウインドウのFontの部分をクリックす
るとPCが固まってしまうという現象があった為です。(しまいには手をあわせながら、たのむーとクリックをする始末でした...)みなさんもこんな現象ってなりますか?

5330 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free