木曜日, 10月 30, 2008
[EXCEL]ADO関連
▼質問
ADO(Microsoft Active X データ オブジェクト)の基本的な使い方を教えて欲しいんだ。
▼回答
基本的な使い方のサンプルを次に示しておくから参考にしてくれ!!
①参照設定あり
Microsoft ActiveX Data Objects 2.X Library
[変数宣言]
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
[オブジェクト生成]
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
②参照設定なし
[変数宣言]
Dim cn As Object
Dim rs As Object
[オブジェクト生成]
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
③Fieldsプロパティ
[書式]
recordset.Fields.Item(0)
recordset.Fields.Item("name")
recordset.Fields(0)
recordset.Fields("name")
recordset(0)
recordset("name")
recordset![name]
④上書きサンプル
■参考サイト
VB ADO 操作
http://www.red.oit-net.jp/tatsuya/vb/ADO.htm
アクセスVBA講座_ADO_Recordsetオブジェクトの作成
http://www.geocities.jp/cbc_vbnet/ADO/recordset.html
ADO(Microsoft Active X データ オブジェクト)の基本的な使い方を教えて欲しいんだ。
▼回答
基本的な使い方のサンプルを次に示しておくから参考にしてくれ!!
①参照設定あり
Microsoft ActiveX Data Objects 2.X Library
[変数宣言]
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
[オブジェクト生成]
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
②参照設定なし
[変数宣言]
Dim cn As Object
Dim rs As Object
[オブジェクト生成]
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
③Fieldsプロパティ
[書式]
recordset.Fields.Item(0)
recordset.Fields.Item("name")
recordset.Fields(0)
recordset.Fields("name")
recordset(0)
recordset("name")
recordset![name]
④上書きサンプル
strSQL = "SELECT COUNT(*) FROM " & strTBL & " WHERE フィールド名= 値"
Set rs = cn.Execute(strSQL)
count = rs.Fields(0)
rs.Close
If (count = 1) Then
'更新
strSQL = "SELECT * FROM " & strTBL & " WHERE フィールド名= 値"
rs.Open strSQL, cn, adOpenForwardOnly, adLockOptimistic 'SQL文を実行
rs!フィールド名= 値
rs.Update '更新(保存)
rs.Close
Else
'新規作成
strSQL = "SELECT * FROM " & strTBL
rs.Open strSQL, cn, adOpenKeyset, adLockOptimistic 'テーブルを開く
rs.AddNew '新規レコードを追加する
rs!フィールド名= 値
rs.Update '更新(保存)
rs.Close
End If
■参考サイト
VB ADO 操作
http://www.red.oit-net.jp/tatsuya/vb/ADO.htm
アクセスVBA講座_ADO_Recordsetオブジェクトの作成
http://www.geocities.jp/cbc_vbnet/ADO/recordset.html
火曜日, 10月 21, 2008
[VB2005]OpenOfficeをエクセル(Excel)のように使用する
▼質問
VBでOpenOfficeのCalcをエクセル(Excel)のように操作したいんだ。
どうやったらできるかサンプルが欲しいんだ。
何か良い情報があったら教えてくれ!
▼回答
良さそうなサンプルがあったから試してみてくれ!
でも、サンプルはCalcじゃなくてWriterだけど・・・。
これで、雰囲気は掴めるかな?!
Calcのサンプルを作成してみたので参考にしてみてくれ!!
インターフェイス・プロパティ・メソッドの一覧を表示するマクロがあったので、こちらも
参考にしてみてくれ!!
■参考サイト
OOoMacros
http://www.ooomacros.org/index.php
OOoBasic/Tutorial/kakeibo/macro - ...?
http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?OOoBasic%2FTutorial%2Fkakeibo%2Fmacro
OpenOffice.org 操作術 第 3 回 中本担当分原稿 OpenOffice.org の表 ...
http://bd.tank.jp/nikkei/article3_1.pdf
7. 表計算ドキュメント (StarSuite 8 Basic プログラミングガイド) - Sun Microsystems
http://docs.sun.com/app/docs/doc/819-1332/faail?l=ja&a=view
VBでOpenOfficeのCalcをエクセル(Excel)のように操作したいんだ。
どうやったらできるかサンプルが欲しいんだ。
何か良い情報があったら教えてくれ!
▼回答
良さそうなサンプルがあったから試してみてくれ!
でも、サンプルはCalcじゃなくてWriterだけど・・・。
これで、雰囲気は掴めるかな?!
Calcのサンプルを作成してみたので参考にしてみてくれ!!
Sub HelloWorldExampleCalc()
Dim myCalc As Object, mySheet As Object, myCell As Object
myCalc = StarDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, dummyArray)
mySheet = myCalc.getCurrentController().getActiveSheet()
myCell = mySheet.getCellByPosition(0, 1)
myCell.String = OOoMess111
myCell = mySheet.getCellByPosition(0, 2)
myCell.Value = 100
myCell.CharColor = OOoRGB(0, 200, 0)
myCell = mySheet.getCellByPosition(0, 3)
myCell.Formula = "=A3*2"
myCell.CharWeight = OOOawtFontWeightBOLD
mySheet.getCellByPosition(0, 4).CellBackColor() = OOoRGB(0, 200, 0)
Dim oBorderLine As Object = CreateUnoStruct("com.sun.star.table.BorderLine")
Dim oTableBorder As Object = CreateUnoStruct("com.sun.star.table.TableBorder")
With oBorderLine
.Color = RGB(0, 0, 0)
.OuterLineWidth = 1
End With
With oTableBorder
.IsLeftLineValid = True
.IsTopLineValid = True
.IsRightLineValid = True
.IsBottomLineValid = True
.LeftLine = oBorderLine
.TopLine = oBorderLine
.RightLine = oBorderLine
.BottomLine = oBorderLine
End With
mySheet.getCellRangeByName("A2:B3").TableBorder() = oTableBorder
MsgBox(OOoMess105)
myCalc.close(True)
End Sub
インターフェイス・プロパティ・メソッドの一覧を表示するマクロがあったので、こちらも
参考にしてみてくれ!!
sub Main
Dim dbg As object
dbg = CreateUnoService("com.sun.star.sheet.SpreadsheetDocument")
MsgBox(dbg.Dbg_SupportedInterfaces)
MsgBox(dbg.Dbg_Properties)
MsgBox(dbg.Dbg_Methods)
end sub
■参考サイト
OOoMacros
http://www.ooomacros.org/index.php
OOoBasic/Tutorial/kakeibo/macro - ...?
http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?OOoBasic%2FTutorial%2Fkakeibo%2Fmacro
OpenOffice.org 操作術 第 3 回 中本担当分原稿 OpenOffice.org の表 ...
http://bd.tank.jp/nikkei/article3_1.pdf
7. 表計算ドキュメント (StarSuite 8 Basic プログラミングガイド) - Sun Microsystems
http://docs.sun.com/app/docs/doc/819-1332/faail?l=ja&a=view
土曜日, 10月 18, 2008
[VB2005]MonthCalendarのDateChangedイベントが周期的に発生する
▼質問
MonthCalendarでDateChangedイベントが周期的に発生するんだ。
これはどうしてなんだ?
▼回答
参考サイトより
カレンダーの本日を更新するために約2分間隔でマシン日付をチェックするために発生している
イベントに同期しているらしい。これは、MonthCalendarコントロールのバグらしい。
ユーザが明示的に操作した時にだけイベントを発生させたいなら、DateChangedではなく、DateSelectedイベントを使えばよいようだ。
確かに、DateSelectedイベントを使えば問題ないことがわかった。
DateChangedイベントとDateSelectedイベントの違いは何なんだ?と思って説明を並べてみた。
MonthCalendar.DateChanged イベント
MonthCalendar で選択された日付が変更された場合に発生します。
MonthCalendar.DateSelected イベント
ユーザーがマウスを使用して明示的に日付を選択した場合に発生します。
これを読む限り、通常操作の場合はDateSelected イベントを使えばよいことになるな!
DateChanged イベントを使うのはどんな時なのかと考えてみると、選択された特定の日に
何かをしたい時のイベント処理が考えられるのかな?!
よく考えると、単純に選択(操作)と変更(動作)の違いか!!
■参考サイト
MonthCalendar で予期せぬ DateChanged イベントが発生する
http://blogs.wankuma.com/jeanne/archive/2005/09/02/18244.aspx
DataGridViewの年月日項目に今日の日付が自動設定される?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=41347&forum=7
MonthCalendarでDateChangedイベントが周期的に発生するんだ。
これはどうしてなんだ?
▼回答
参考サイトより
カレンダーの本日を更新するために約2分間隔でマシン日付をチェックするために発生している
イベントに同期しているらしい。これは、MonthCalendarコントロールのバグらしい。
ユーザが明示的に操作した時にだけイベントを発生させたいなら、DateChangedではなく、DateSelectedイベントを使えばよいようだ。
確かに、DateSelectedイベントを使えば問題ないことがわかった。
DateChangedイベントとDateSelectedイベントの違いは何なんだ?と思って説明を並べてみた。
MonthCalendar.DateChanged イベント
MonthCalendar で選択された日付が変更された場合に発生します。
MonthCalendar.DateSelected イベント
ユーザーがマウスを使用して明示的に日付を選択した場合に発生します。
これを読む限り、通常操作の場合はDateSelected イベントを使えばよいことになるな!
DateChanged イベントを使うのはどんな時なのかと考えてみると、選択された特定の日に
何かをしたい時のイベント処理が考えられるのかな?!
よく考えると、単純に選択(操作)と変更(動作)の違いか!!
■参考サイト
MonthCalendar で予期せぬ DateChanged イベントが発生する
http://blogs.wankuma.com/jeanne/archive/2005/09/02/18244.aspx
DataGridViewの年月日項目に今日の日付が自動設定される?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=41347&forum=7