• ベストアンサー

フォームのラベルのプロパティを自動で設定したい

Access2013 vba です。 フォームの全てのラベル、テキストボックス、ボタン類をそれぞれの背景色や、テーマ、背景スタイルなどを設定したいのですが、どうやれば、全てのラベル、テキストボックス、ボタンなどを自動でループ処理で取得出来ますでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

フォームをデザインビューで開く必要があります。で、保存。 windowmode は適当に。 標準モジュールで docmd.OpenForm "formName",view:=acDesign,windowmode:=acHidden forms!formName!ラベル2.backcolor = vbred docmd.Close acForm ,"formName",save:=acSaveYes

superwonderful
質問者

お礼

ご回答ありがとうございます。 さっそく試してみます! これで、フォームの作成時間が短縮できそうです。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

たとえば適当なラベル(仮に名前を「ラベル2」とします)のプロパティが Dim ctl As Control, prp As Property On Error Resume Next For Each ctl In Me.Controls   If ctl.Name = "ラベル2" Then     Debug.Print ctl.Name, TypeName(ctl)     For Each prp In ctl.Properties       Debug.Print , , prp.Name, prp.Type, prp.Value     Next   End If Next だと ラベル2       Label   EventProcPrefix 8      ラベル2 Name      8      ラベル2 ControlType  2       100 Caption    8      タイトル &R Visible    11      True Width     2       1134 Height     2       225 Top      2       120 Left      2       72 BackStyle   2       0 BackColor   3       16777215 BackThemeColorIndex     3      -1 BackTint    4       100 BackShade   4       100 BorderStyle  2       0 OldBorderStyle        2       0 BorderLineStyle       2       0 BorderWidth  2       0 BorderColor  3       0 BorderThemeColorIndex    3      -1 BorderTint   4       100 BorderShade  4       100 SpecialEffect 2       0 TextFontCharSet       2       128 FontName    8      MS ゴシック FontSize    2       9 TextAlign   2       0 ThemeFontIndex        3      -1 FontWeight   2       400 FontUnderline 11      False FontItalic   11      False FontBold    2       0 ForeColor   3       0 ForeThemeColorIndex     3      -1 ForeTint    4       100 ForeShade   4       100 LineSpacing  2       0 HyperlinkAddress       8       HyperlinkSubAddress     8       HyperlinkTarget       8       HyperlinkBinderDescription  8       GridlineStyleTop       2       0 GridlineStyleBottom     2       0 GridlineStyleLeft      2       0 GridlineStyleRight      2       0 GridlineColor 3       0 GridlineWidthTop       2       1 GridlineWidthBottom     2       1 GridlineWidthLeft      2       1 GridlineWidthRight      2       1 TopMargin   2       0 BottomMargin  2       0 LeftMargin   2       0 RightMargin  2       0 TopPadding   2       30 BottomPadding 2       30 LeftPadding  2       30 RightPadding  2       30 HorizontalAnchor       2       0 VerticalAnchor        2       0 DisplayWhen  2       0 ReadingOrder  2       0 NumeralShapes 2       0 OnClick    8       OnClickEmMacro        8209     OnDblClick   8       OnDblClickEmMacro      8209     OnMouseDown  8       OnMouseDownEmMacro      8209     OnMouseUp   8       OnMouseUpEmMacro       8209     OnMouseMove  8       OnMouseMoveEmMacro      8209     ControlTipText        8       HelpContextId 3       0 Vertical    11      False SmartTags   8       Tag      8       Section    2       0 Layout     3       0 LayoutID    3       0 RowStart    2       0 RowEnd     2       0 ColumnStart  2       0 ColumnEnd   2       0 GridlineThemeColorIndex   3      -1 GridlineTint  4       100 GridlineShade 4       100 のように、ラベル2の背景色(BackColor)など色々得られます。

superwonderful
質問者

お礼

ありがとうございます。 Form_Load時にうまくプロパティが設定出来ました。 PGで設定したプロパティを保存することはできるのでしょうか?次にデザインビューで開くとまた戻ってしまいます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

Dim ctl As Control, prp As Property On Error Resume Next For Each ctl In Me.Controls Debug.Print ctl.Name, TypeName(ctl) For Each prp In ctl.Properties Debug.Print , , prp.Name, prp.Type, prp.Value Next Next みたいなこと? ご参考まで。

superwonderful
質問者

補足

そうなんですけど、このCtrlの変数に属するプロパティーに背景色とか、Back..Styleなどの設定が見当たらないので、ラベルのせっていの変更が出来ないのです。。。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBAのループ処理

    エクセルVBAにてテキストボックス、ラベルが複数ある フォームで入力ボタンを(コマンドボタン)クリックした時に 指定した複数のテキストボックス、ラベルをループ処理で空白に したいのですが どのようにすればいいでしょうか?

  • Access(フォームのプロパティボックスの設定)

     Win XP Office 2003 Accessを勉強中です。  フォームをデザインビューに作成するときに、ラベルとテキストボックスが作成されます。  これらのプロパティで「すべて」のタブで一番上から「名前」、「表題」または「コントロールソース」という項目がありますが、 これらは最初に、「テキスト○○」「ラベル○○」と表示されています。  「表題」または「コントロールソース」の欄の内容を変更すると、その内容がフォームから見えますが、  「名前」の欄を変更してやらなければならない場合とかはあるのでしょうか。  色々なテキストを見ると、「この場合には、必ず「表題」または「コントロールソース」の内容と同じ内容にすること」 と書かれていますが、これはフォームの入力欄の種類(コンボボックス、トグルボタン、チェックボックス、リストボッ クス)によって、変更するかしないかが決定されるのでしょうか。  どのような場合に「名前」の欄の内容を表題とかに合わせて変更するとか、この場合には変更しなくても良いという決まり はあるのでしょうか。

  • ラベルに「コントロールソース」を設定することは不可能でしょうか?

    単票形式のフォームのレコードソースに紐付くコントロールソースを ラベルに設定したいのですができません。 ハイパーリンクをテキストボックスではなく ラベル上に表示したいです。 テキストボックスのプロパティには「コントロールソース」があるのですが ラベルに「コントロールソース」はありません。 設定することは不可能でしょうか? VBAでも可能なら教えてください。 よろしくお願いします。

  • Excel VBAのフォーム_ラベルの縦位置

    Excel VBAのフォームを作成しているのですが、 ラベルのキャプションの縦位置が指定できません。 テキストボックスを入力不可の状態にすると、文字が薄いグレーになってしまい、 ラベルにすると表示される文字が上によってしまいます。 ラベルの文字列を下付き文字にするか、テキストボックスのもじれるを黒くする方法を教えてください。 よろしくお願い致します。

  • EXCELのフォームのプロパティを自動設定する方法。

    EXCELのフォームのプロパティを自動設定する方法。 いつもお世話になります。フォーム上の、例えばテキストボックスの位置をVBから変更する手段はありますでしょうか。開いているフォームのプロパティを設定するのは簡単ですが、そうではなくソースのデザイン自体を変更したいのです。 宜しくお願いします。

  • アクセスのフォームでテキストボックスを順番に選択

    任意の名前がついたテキストボックスがあります。 これをVBAを使い、1つずつ選択することは可能でしょうか? 例えばエクセルのシートだったら Sheets(1) みたいな感じで数字も使えますが、アクセスのフォームではできないのでしょうか? さらに取得していったテキストボックスの値を取得、ということもしたいです。 Access2000です。

  • ラベルと連結したテキストボックスの背景色を変える方法

    環境:XP&ACCESS2003 フォーム上にラベルと連結したテキストボックスがあります。 フォーム上のある連結テキストボックスの値を参照してラベルと連結したテキストボックスの背景色を変える方法が思い浮かびません。ご存知の方、教えてください。よろしくお願いします。

  • テーブルにデータを保存するフォームの考え方

    Access2000で勉強中ですが、フォーム上にID 商品名 単価 のテキストボックスを作成しました。 その下に、保存されたデータを表示されるようにサブフォームを作っています。そして 新規保存・修正・削除ボタンを1つの入力フォーム上に作成して処理できるものを作ろうと考えています。 サブフォームのレコードセレクタを指定して修正ボタンを 押すとテキストボックスに内容が表示されて修正できるようにするにはどうすればよいでしょうか? 説明が下手なのですが、簡単に言うと サブフォーム上ではレコードの選択(レコードセレクタ)の指定だけで入力をさせないようにしたいのです。 VBAのレコードセレクタの取得が良く判らないので よろしくお願い致します。

  • アクセスで新規にレコードを追加する際自動的に番号を付けたい。

    アクセス2000で売上の管理をしています。 「管理番号」を使って伝票の処理をしているのですが、 フォームに新規に伝票を入力するとき、自動的に番号を付けたいんです。 できたら、フォーム上に「伝票新規」のボタンを作って、そのボタンを押したら テキストボックスに番号を表示させるようにしたいのですが、 どうしたらよいのかわからないんです! どなたか教えていただけませんか? よろしくお願いします。

  • Office VBAのフォームのようなソフト

    Excel VBAのユーザフォームのように、 好きな位置に、ラベル、テキストボックスやボタンなど マウスで自由に配置して JAVAをプログラムできるソフトはないのでしょうか? Visual C++などもフォームが使えますので、 いうなれば、存在しないですけどVisual JAVA?的なものがあれば最適なのですが。

    • ベストアンサー
    • Java