改行のあるデータを含むテーブルをデータシート形式で表示する際、
幅・高さをVBAで自動で調整したいです。
下記コードを設定すると、幅は各データの一行目のデータで判定されるため、
説明のデータが途中で見切れてしまいます。
VBA
1Private Sub Form_Load() 2'高さを設定 3 RowHeight = 240 * 2 4 5'幅を設定 6 Dim ctl As Control 7 For Each ctl In Controls 8 If ctl.ControlType = acTextBox Then 9 ctl.ColumnWidth = -2 10 End If 11 Next ctl 12End Sub
上記の状態から、幅は下記の状態に設定され、
高さもいずれかのデータで3行以上になるデータが入力されている場合は
行数に応じて調整されるように変えるにはどうすればよいでしょうか。
よろしくお願いします。
ご回答ありがとうございます。
データシートではすべての行の高さは同じ
同じで大丈夫です。そのすべて同じとなる行の高さを、
説明フィールドで一番行数の多いデータに合わせたいと考えています。
下記クエリ(最大改行数取得)を作成し、クエリ単体を実行すると
説明列の最大改行数を取得するので、VBAで同クエリを実行したのですが、
VBAで実行するとクエリで取得する値が常に1でうまくいきません。
また、各列の幅を最大行に合わせる方法も分かりません。
よろしくお願いします。
SQL
1SELECT Max(Len([説明])-Len(Replace([説明],Chr(13)+Chr(10),"")))/2 AS 最大行数 2FROM 商品;
VBA
1Private Sub Form_Load() 2'高さを設定 3' RowHeight = 240 * 2 4 DoCmd.OpenQuery "最大改行数取得" 5 Debug.Print DCount("最大行数", "最大改行数取得") 6 RowHeight = 240 * (1 + DCount("最大行数", "最大改行数取得")) 7 8
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。