| 
    
     |  | よろずやさん 小僧さん 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
 とか試してみましたが、希望の操作にはなりませんでした
 
 
 なにかアドバイスありましたらよろしくお願いいたします
 
 |  |