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は不吉な数だからないみたい・・・かわいい


ラベル:AccessVBA
posted by Ponta at 23:27| Comment(0) | TrackBack(0) | AccessVBA | このブログの読者になる | 更新情報をチェックする

2013年06月11日

リストボックスで選択されているか知りたい[AccessVBA]




If Me. リストボックス.ItemsSelected.Count = 0 Then
	Debug.print "選択されてない"
Else
Debug.print Me. リストボックス.ItemsSelected.Count & "個選択されてる"
End If

備忘録です。
Access むかむかさんのお世話になりましたかわいい
ラベル:AccessVBA
posted by Ponta at 20:17| Comment(0) | TrackBack(0) | AccessVBA | このブログの読者になる | 更新情報をチェックする

2012年11月30日

レポートでフォントサイズを自動縮小したい[AccessVBA]

Accessのレポートで、フィールド内の文字を縮小させるときに

「特定の文字数を超えたら、フォントサイズを○ptにする」っていうのはやっていたのですが、

自動的にフィールドに入りきるフォントサイズに出来ることを知りませんでした。。

TextWidthで、文字列の幅がわかるんですねぇ。



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

なるほど〜かわいい
posted by Ponta at 18:33| Comment(0) | TrackBack(0) | AccessVBA | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。