ラベル:AccessVBA
2013年06月18日
Officeのバージョンを判別したい[ExcelVBA、AccessVBA]
職場で、Office2003と2010が混在する環境になってきました。
以前、2010をちょっと試してみたら
VBAがうまく動かない部分がありました。
印刷範囲を設定しているブックの印刷や
TransferSpreadsheetでエクセルにエクスポートする時など
2003と2010で、コードを変えないといけない場合がありそうです。
そこで、Officeのバージョンを判別するコードは、、、
Application.Version
2003なら、11.0
2010なら、14.0 を返します。
ちなみに、2007なら12.0
13.0は不吉な数だからないみたい・・・
2013年06月11日
リストボックスで選択されているか知りたい[AccessVBA]
If Me. リストボックス.ItemsSelected.Count = 0 Then
Debug.print "選択されてない"Else
Debug.print Me. リストボックス.ItemsSelected.Count & "個選択されてる"
End If
備忘録です。Access むかむかさんのお世話になりました
ラベル:AccessVBA
2012年11月30日
レポートでフォントサイズを自動縮小したい[AccessVBA]
Accessのレポートで、フィールド内の文字を縮小させるときに
「特定の文字数を超えたら、フォントサイズを○ptにする」っていうのはやっていたのですが、
自動的にフィールドに入りきるフォントサイズに出来ることを知りませんでした。。
TextWidthで、文字列の幅がわかるんですねぇ。
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
Dim strTxt As String
Dim i As Integer
Dim BoxSize As Long
Dim TxtSize As Long
Me.FontSize = 10
Me.[テキストボックス].FontSize = 10
strTxt = Me.[テキストボックス].Text
i = Me.[テキストボックス].FontSize
BoxSize = Me.[テキストボックス].Width
TxtSize = Me.TextWidth(strTxt)
Do While BoxSize < TxtSize
Me.[テキストボックス].FontSize = i - 1
Me.FontSize = i - 1
TxtSize = Me.TextWidth(strTxt)
i = i - 1
Loop
End Sub
なるほど〜

