[[20171214133614]] 『VBAユーザーフォーム編集について』(ここ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAユーザーフォーム編集について』(ここ)

VBAのユーザーフォームを編集しているのですが、同じようなフォームを一つずつ色を変えていくのは大変なので効率の良い方法はないのでしょうか?

既にフォームそれぞれにコードを記述してしまったので、既存のフォームで行える方法を探しています。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


Sub テスト()
    Load UserForm
    UserForm.BackColor = RGB(64, 128, 64)
    UserForm.Show
End Sub
(Q::) 2017/12/14(木) 13:51

Q::さんの案は、実行時に色付ければ?、という方法。
別案で、無理矢理フォームのプロパティ値を変えてしまう例。Excel2010で試したので、2016で動くかどうかは不明。

 Sub Test()
    Dim OBJ As Object
    Dim i As Long

    Set OBJ = Application.VBE.ActiveVBProject.VBComponents

    For i = 1 To OBJ.Count
        If OBJ(i).Type = 3 Then
            OBJ(i).Properties("BackColor") = RGB(128, 128, 128)
        End If
    Next i

    Set OBJ = Nothing
 End Sub
(???) 2017/12/14(木) 14:27

object.BackColor = colorで色を変えてみようと思ったのですが、objectの部分を一つ一つユーザーフォーム名を指定するのではなく、すべてのフォームを対象にできるようなものはありますでしょうか..?
(ここ) 2017/12/15(金) 13:32

私のコードは、全てのフォームを対象としていますが、動かしてみなかったのでしょうか?
(???) 2017/12/15(金) 14:10

標準フォームに置いてみましたが変化はありませんでした..
Public fuctionに変えてみると'VBEメゾット'は失敗しましたとでます。
(ここ) 2017/12/15(金) 14:59

セキュリティセンターの設定にある、マクロの設定を確認してみてください。 「VBAプロジェクトモデルへのアクセスを信頼する」にチェックしてあるでしょうか?(2010の場合なので、2016だと多少違うかも)
(???) 2017/12/15(金) 15:19

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.