#628 | データシートの書式を動的に設定するには? | フォーム、VBA | |
フォームのデータシートの書式はリボンの操作で簡単に設定変更できますが、プロパティシートにはその設定項目は表示されません。したがって、動的かつ意図的にそれを変更するには、VBA用の独自のプロパティをプログラムを使って設定変更する必要があります。 データシートの書式にはいろいろなプロパティがありますが、ここではその例として「DatasheetFontName/フォント名」、「DatasheetFontHeight/フォントサイズ」および各列の「ColumnWidth/列幅」プロパティを設定する例を紹介します。 「動的に設定」というタイトルにしていますが、アプリケーションの機能としてはあまり使うことはないかもしれません。実際には、たくさんのデータシート形式のフォームのデザインを一気に変更したいような開発時の作業の方が使えるかもしれません。 まずここでは、次のようなデザインのフォームを作ります。
Private Sub cmd書式設定_Click() Dim ctl As Control With Me!frm商品マスタ_sub With .Form 'フォント名の設定 .DatasheetFontName = "Meiryo UI" 'フォントサイズの設定 .DatasheetFontHeight = 10 End With 'すべての列を最適幅に自動調整 For Each ctl In .Controls ctl.ColumnWidth = -2 Next ctl End With '変更を保存することで閉じるときに確認メッセージを表示させない DoCmd.RunCommand acCmdSave End Sub 実行例: ■実行前(事前にリボンから書式を設定) ■実行後 ※上記プログラムでは各種変更後に意図的にフォームを保存しています。今回設定変更したプロパティについては問題ありませんが、デザインに関する一部の要素はプログラムから動的に変更した場合でもフォームを閉じる際に保存確認のメッセージが表示されます。 これを抑止するためにこの1行のコードを実行しています。Docmd.Closeメソッドの引数として上書きするように指定することもできますが、もしフォームのタブやウィンドウが直接閉じられたときには処理できないのでここで実行しています。 |
|||
|
Copyright © T'sWare All rights reserved |