[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ユーザーフォームのコントロール名の表示』(ign)
いつも参考にさせて頂いております。 1つのファイル内にいくつかのユーザーフォーム内があり、 それぞれテキストボックやチェックボックスなど複数配置されております。 今回、そのコントロールとコードを印刷してファイルに閉じておきたいと思って いるのですがテキストボックスやコマンドボタンなどのValueやcaptionを コントロールの名前に全ておきかえて印刷するとユーザーフォームとコードを 印刷した際、わかりやすいかなと思っています。 そこで、テキストボックの場合はValueをそれ以外はCaptionへそれぞれの コントロール名をマクロで一発で変更する方法があればご教示願います。 WinXP エクセル2003
それぞれのユーザーフォームInitialize()でValueやCaptionを指定して、 SHOWした後に、画面をキャプチャーすればいかがでしょうか? (SHIOJII)
これ、本気でやると結構大変ですよ!! でも、あったら、便利なツールですね!!
まず、仕様書をきちんと記述することから始めてください。
コンボボックスは、Textですか? リストボックスは? イメージコントロールは? スピンボタンは? スクロールボタンは? どのような仕様にしますか?
コントロールの名前の変更なら、Vbprojectを操作することで実現できます。
最初にExcelにて、「ツール」---「マクロ」----「セキュリティ」とクリックして、 セキュリティ ダイアログを表示させます。
信頼のおける発信元 タブにて、「Visual Basic プロジェクトへのアクセスを信頼する」にチェックを 入れてください。
あるユーザーフォーム(Userform1)には
テキストボックス(TextBox1)のValueプロパティに txt1 ラベル(Label1)のCaptionに lbl1 チェックボックス(CheckBox1)のCaptionに chk1 コマンドボタン(CommandButton1)のCaptionに btn1
と設定されていたとします。
標準モジュールに
'========================================================================== Sub test3() Call change_form(ThisWorkbook, "userform1") End Sub '========================================================================== Sub change_form(bk As Workbook, frmnm As String) Dim ctl As msforms.Control On Error Resume Next With bk.VBProject.VBComponents(frmnm) If .Type = 3 Then For Each ctl In .Designer.Controls Select Case TypeName(ctl) Case "TextBox", "ComboBox" ctl.Name = ctl.Text Case "CheckBox", "CommandButton", "Label", "OptionButton", "Frame" ctl.Name = ctl.Caption End Select Next ctl End If End With set ctl=nothing On Error GoTo 0 End Sub
でtestを実行してみてください。
ValueやCaptionの内容がそれぞれのコントロール名に変更されるはずです。
コードを参考にして、Forms2.0 Object Library に含まれるコントロールぐらいは、対処できるようにコードを追加してください。
上記のようなコードでコントロール名の変更は出来ますが、コントロール名の変更をコードにも 反映させるとなると、面倒な処理をしなければなりませんね!! 大変です。
検討してみてください。
ichinose
追伸
>あるユーザーフォーム(Userform1)には >テキストボックス(TextBox1)のValueプロパティに txt1 >ラベル(Label1)のCaptionに lbl1 >チェックボックス(CheckBox1)のCaptionに chk1 >コマンドボタン(CommandButton1)のCaptionに btn1 >と設定されていたとします。 と申し上げたのは、Userform1.Show 等でユーザフォームを表示させて 手動入力または、 コード等でTextプロパティやCaptionプロパティを設定する ということではありません。
VBEにて事前設定でユーザーフォームにTextプロパティやCaptionプロパティに変更する名前を設定する、
ということです。表現が曖昧だったので追加記述しました。
ichinose
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.