|
よろずやさん 小僧さん
HPのご紹介ありがとうございました
出来るんですね♪
以前から気にしていたのですが、お目にかかるのはお初です
試して感激です
You Can Do That with Datasheets?
は
tp://msdn.microsoft.com/en-us/library/aa217449(office.11).aspx
の
Public Function FixColumnWidthsOfTable _
(stName As String)
と
Private Sub SetDAOFieldProperty _
(fld As DAO.Field, _
stName As String, vValue As Variant, _
lType As Long)
で動作確認できました
で、
一度、列幅調整を行っておいて、その列幅取得しておけば
いつでも復旧出来るのでとっても楽が出来そうです
Sub DatasheetBestFit()
Dim ctl As Control
Const BestFit = -2
DoCmd.OpenTable "zz"
On Error Resume Next
With Screen.ActiveDatasheet
For Each ctl In .Controls
ctl.ColumnWidth = BestFit
'Debug.Print ctl.ColumnWidth
Next
End With
DoCmd.SelectObject acForm, "zz", True
DoCmd.OpenTable "zz"
DoCmd.SelectObject acTable, "zz", True
'RefreshDatabaseWindow
End Sub
Sub DatasheetBestFit2()
Dim ctl As Control
Const BestFit = -2
DoCmd.OpenTable "zz"
On Error Resume Next
With Screen.ActiveDatasheet
For Each ctl In .Controls
'ctl.ColumnWidth = BestFit
'Debug.Print ctl.ColumnWidth
ctl.ColumnWidth = 500
Next
End With
DoCmd.OpenTable "zz"
DoCmd.SelectObject acTable, "zz", True
End Sub
ただ、どのコードも、実行後フォーカスを失っているみたいで
You Can Do That with Datasheets?
の場合には、いったん、
データベースウインドウを選択
テーブル選択
スクロールバークリック
しないと、テーブルの縦スクロールが出来ません
手動でテーブルを開いた場合は、
即、マウスでスクロール可能になるのですが・・・・
DoCmd.SelectObject acTable, "zz", True
とか試してみましたが、希望の操作にはなりませんでした
なにかアドバイスありましたらよろしくお願いいたします
|
|