【Perl Script Laboratory】
http://www.psl.ne.jp/
月曜日, 12月 26, 2005
オブジェクト指向
【オブジェクト指向分析/設計概論】
http://www.asahi-net.or.jp/~dp8t-asm/java/articles/OOAD/article.html
■継承とポリモーフィズム
サンプルプログラム
フォームにボタンを2つ配置する。
・Class1.vb
'スーパークラス(親クラス)
Public MustInherit Class cSuperClass
Public MustOverride Sub Msg(ByVal msg As String)
End Class
'クラス(子クラス)
Public Class cMsgBox1
Inherits cSuperClass
Public Overrides Sub Msg(ByVal msg As String)
MessageBox.Show(msg & vbCrLf & "クラス名:cMsgBox1")
End Sub
End Class
'クラス(子クラス)
Public Class cMsgBox2
Inherits cSuperClass
Public Overrides Sub Msg(ByVal msg As String)
MessageBox.Show(msg & vbCrLf & "クラス名:cMsgBox2")
End Sub
End Class
・Form1.vb
Public Class Form1
Private cClsMsgBox As cSuperClass
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
cClsMsgBox = New cMsgBox1
cClsMsgBox.Msg("Button1")
cClsMsgBox = Nothing
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
cClsMsgBox = New cMsgBox2
cClsMsgBox.Msg("Button2")
cClsMsgBox = Nothing
End Sub
End Class
■参考サイト
【@IT:連載:プロフェッショナルVB.NETプログラミング 第19回 継承とポリモーフィズム】
http://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet19/vb6tonet19_01.html
http://www.asahi-net.or.jp/~dp8t-asm/java/articles/OOAD/article.html
■継承とポリモーフィズム
サンプルプログラム
フォームにボタンを2つ配置する。
・Class1.vb
'スーパークラス(親クラス)
Public MustInherit Class cSuperClass
Public MustOverride Sub Msg(ByVal msg As String)
End Class
'クラス(子クラス)
Public Class cMsgBox1
Inherits cSuperClass
Public Overrides Sub Msg(ByVal msg As String)
MessageBox.Show(msg & vbCrLf & "クラス名:cMsgBox1")
End Sub
End Class
'クラス(子クラス)
Public Class cMsgBox2
Inherits cSuperClass
Public Overrides Sub Msg(ByVal msg As String)
MessageBox.Show(msg & vbCrLf & "クラス名:cMsgBox2")
End Sub
End Class
・Form1.vb
Public Class Form1
Private cClsMsgBox As cSuperClass
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
cClsMsgBox = New cMsgBox1
cClsMsgBox.Msg("Button1")
cClsMsgBox = Nothing
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
cClsMsgBox = New cMsgBox2
cClsMsgBox.Msg("Button2")
cClsMsgBox = Nothing
End Sub
End Class
■参考サイト
【@IT:連載:プロフェッショナルVB.NETプログラミング 第19回 継承とポリモーフィズム】
http://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet19/vb6tonet19_01.html
[VBA]リンク集(更新版)
■リンク集■
【Excel VBA 入門講座】
http://excelvba.pc-users.net/index.html
【EXCEL生産性向上委員会】
http://www.excel7.com/index.htm
【Office TANAKA】
http://www.officetanaka.net/
【Excel VBA 入門講座】
http://excelvba.pc-users.net/index.html
【EXCEL生産性向上委員会】
http://www.excel7.com/index.htm
【Office TANAKA】
http://www.officetanaka.net/
[VB.NET]プリプロセッサ(#If,#Const,#Region)
■#If,#Const
【@IT:連載:改訂版 プロフェッショナルVB.NETプログラミング Chapter 16 プリプロセッサ】
http://www.atmarkit.co.jp/fdotnet/vb6tonet2/vbnet2_16/vbnet2_16_01.html
■#Region
似たような関数処理をブロック単位毎にグループ分けすると折り込んで畳んでしまう機能を使ったときにソースが
見やすくすることができる。
#Region "タイトル"
#End Region
【@IT:連載:改訂版 プロフェッショナルVB.NETプログラミング Chapter 16 プリプロセッサ】
http://www.atmarkit.co.jp/fdotnet/vb6tonet2/vbnet2_16/vbnet2_16_02.html
【@IT:連載:改訂版 プロフェッショナルVB.NETプログラミング Chapter 16 プリプロセッサ】
http://www.atmarkit.co.jp/fdotnet/vb6tonet2/vbnet2_16/vbnet2_16_01.html
■#Region
似たような関数処理をブロック単位毎にグループ分けすると折り込んで畳んでしまう機能を使ったときにソースが
見やすくすることができる。
#Region "タイトル"
#End Region
【@IT:連載:改訂版 プロフェッショナルVB.NETプログラミング Chapter 16 プリプロセッサ】
http://www.atmarkit.co.jp/fdotnet/vb6tonet2/vbnet2_16/vbnet2_16_02.html
月曜日, 12月 19, 2005
[VB2005]PictureBox
■StringFormatクラス(System.Drawing名前空間)
テキストレイアウト情報で配置や行間などを取得または設定します。
・Alignmentプロパティ
テキスト配置情報を取得または設定します。
・LineAlignmentプロパティ
行配置を取得または設定します。
・FormatFlagsプロパティ
書式情報を格納するStringFormatFlags列挙体を取得または設定します。
StringFormatFlags列挙体は、文字列の表示情報およびレイアウト情報を指定します。
DirectionRightToLeft=1
DirectionVertical=2
DisplayFormatControl=32
FitBlackBox=4
LineLimit=8192
DirectionRightToLeft:右寄せ表示。
DirectionVertical:縦書き(全角のみ表示可能?、英数字・半角カタカナは横に表示される)
DisplayFormatControl:左寄せ折返し表示。
FitBlackBox:折返して表示される。
LineLimit 書式指定用の四角形には、完全な直線だけがレイアウトされます。既定では、クリッピングの結果、テキストの末尾が表示された状態、または行が表示されなくなった状態のうち、いずれか早い方の状態になるまでレイアウトが継続します。既定の設定では、行高さの整数倍でない書式指定用四角形を用いた場合は、最後の行の一部が隠れることがあります。必ず行全体が表示されるようにするには、この値を指定した上で、少なくとも 1 つの行と高さが同じの書式指定用の四角形を使用してください。 8192
MeasureTrailingSpaces 既定では、 MeasureString メソッドから返される外接四角形によって、各行末の空白が除外されます。各行末の空白を計測に含める場合はこのフラグを設定します。 2048
NoClip グリフの突出部と書式指定用の四角形からはみ出すラップされていないテキストを表示できます。既定では、書式指定用の四角形からはみ出たテキストとグリフ部はすべてクリップされます。 16384
NoFontFallback フォールバックを無効にして、要求されたフォントでサポートされていない文字のフォントを切り替えます。欠落文字は、グリフの欠落したフォント (通常は空白の正方形) で表示されます。 1024
NoWrap 四角形内の書式指定時に、行間のテキストのラップを無効にします。このフラグは、四角形ではなく点が渡された場合、または長さゼロの行の四角形が指定された場合に暗黙的に指定されます。 4096
【StringFormat メンバ/MSDN】
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdrawingstringformatmemberstopic.asp
■Graphicsクラス(System.Drawing名前空間)
ディスプレイデバイスに描画するためのクラス。
・FillRectangleメソッド
座標ペア(左上隅のx,y)、幅(width)、および高さ(height)で指定された四角形の内部を塗りつぶす。
FillRectangle(Brush, Rectangle)
例:
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
Dim wRec As New Rectangle(0, 0, 50, 20)
Dim g As Graphics = e.Graphics
g.FillRectangle(Brushes.Blue, wRec)
End Sub
・DrawRectangleメソッド
【Graphics メンバ/MSDN】
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdrawinggraphicsmemberstopic.asp
テキストレイアウト情報で配置や行間などを取得または設定します。
・Alignmentプロパティ
テキスト配置情報を取得または設定します。
・LineAlignmentプロパティ
行配置を取得または設定します。
・FormatFlagsプロパティ
書式情報を格納するStringFormatFlags列挙体を取得または設定します。
StringFormatFlags列挙体は、文字列の表示情報およびレイアウト情報を指定します。
DirectionRightToLeft=1
DirectionVertical=2
DisplayFormatControl=32
FitBlackBox=4
LineLimit=8192
DirectionRightToLeft:右寄せ表示。
DirectionVertical:縦書き(全角のみ表示可能?、英数字・半角カタカナは横に表示される)
DisplayFormatControl:左寄せ折返し表示。
FitBlackBox:折返して表示される。
LineLimit 書式指定用の四角形には、完全な直線だけがレイアウトされます。既定では、クリッピングの結果、テキストの末尾が表示された状態、または行が表示されなくなった状態のうち、いずれか早い方の状態になるまでレイアウトが継続します。既定の設定では、行高さの整数倍でない書式指定用四角形を用いた場合は、最後の行の一部が隠れることがあります。必ず行全体が表示されるようにするには、この値を指定した上で、少なくとも 1 つの行と高さが同じの書式指定用の四角形を使用してください。 8192
MeasureTrailingSpaces 既定では、 MeasureString メソッドから返される外接四角形によって、各行末の空白が除外されます。各行末の空白を計測に含める場合はこのフラグを設定します。 2048
NoClip グリフの突出部と書式指定用の四角形からはみ出すラップされていないテキストを表示できます。既定では、書式指定用の四角形からはみ出たテキストとグリフ部はすべてクリップされます。 16384
NoFontFallback フォールバックを無効にして、要求されたフォントでサポートされていない文字のフォントを切り替えます。欠落文字は、グリフの欠落したフォント (通常は空白の正方形) で表示されます。 1024
NoWrap 四角形内の書式指定時に、行間のテキストのラップを無効にします。このフラグは、四角形ではなく点が渡された場合、または長さゼロの行の四角形が指定された場合に暗黙的に指定されます。 4096
【StringFormat メンバ/MSDN】
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdrawingstringformatmemberstopic.asp
■Graphicsクラス(System.Drawing名前空間)
ディスプレイデバイスに描画するためのクラス。
・FillRectangleメソッド
座標ペア(左上隅のx,y)、幅(width)、および高さ(height)で指定された四角形の内部を塗りつぶす。
FillRectangle(Brush, Rectangle)
例:
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
Dim wRec As New Rectangle(0, 0, 50, 20)
Dim g As Graphics = e.Graphics
g.FillRectangle(Brushes.Blue, wRec)
End Sub
・DrawRectangleメソッド
【Graphics メンバ/MSDN】
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdrawinggraphicsmemberstopic.asp
水曜日, 12月 07, 2005
[VB.NET]ComboBoxコントロール
■VB6.0で使えたItemDataプロパティがなくなったための代用方法
【VB.NETのComboBoxでItemDataを使うには?】
http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200411/04110095.txt
【VB.NETで作る! | VB6のItemDataの代用】
http://shinshu.fm/MHz/88.44/a03195/0000033677.html
【VB.NETのComboBoxでItemDataを使うには?】
http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200411/04110095.txt
【VB.NETで作る! | VB6のItemDataの代用】
http://shinshu.fm/MHz/88.44/a03195/0000033677.html
お役立ちリンク集
【Programming Library - VB/VC/Delphi総合情報ページ】
http://homepage1.nifty.com/MADIA/
【MOONGIFT - オープンソースによるIT戦略支援 -】
http://www.moongift.jp/
http://homepage1.nifty.com/MADIA/
【MOONGIFT - オープンソースによるIT戦略支援 -】
http://www.moongift.jp/
木曜日, 12月 01, 2005
[VB.NET]Timerコントロール
Timer コントロール
Enabled プロパティ、Interval プロパティなどがそのままアップグレードされます。ただし、Interval プロパティの最小値が 「1」 であるため、この値が 「0」 のときは自動的に 「1」 に変更されます。つまり、Visual Basic 6.0 では Interval プロパティが 「0」 に設定されていたためTimerイベントが発生しなかった場合でも、1 ミリ秒ごとに Timer イベントが発生するアプリケーションに変わってしまいます。そのため、このような場合には、アップグレード後に手直しが必要になります。
【VB 6.0 ユーザーのための VB .NET 移行ガイド - 標準コントロール】
http://www.microsoft.com/japan/msdn/net/vbtransitionguide/chapter5/chapter5_4.asp
Enabled プロパティ、Interval プロパティなどがそのままアップグレードされます。ただし、Interval プロパティの最小値が 「1」 であるため、この値が 「0」 のときは自動的に 「1」 に変更されます。つまり、Visual Basic 6.0 では Interval プロパティが 「0」 に設定されていたためTimerイベントが発生しなかった場合でも、1 ミリ秒ごとに Timer イベントが発生するアプリケーションに変わってしまいます。そのため、このような場合には、アップグレード後に手直しが必要になります。
【VB 6.0 ユーザーのための VB .NET 移行ガイド - 標準コントロール】
http://www.microsoft.com/japan/msdn/net/vbtransitionguide/chapter5/chapter5_4.asp
火曜日, 11月 29, 2005
[VB2005]データベース
【「300 秒でズバリ !!」&「10 行でズバリ !!」シリーズ [Visual Studio 2005 対応版]】
http://www.microsoft.com/japan/msdn/thisweek/300x10/
■[VB.NET]
【Visual Basic .NET を使用してデータベースから DataSet オブジェクトを取得する方法】
http://support.microsoft.com/default.aspx?scid=kb;ja;301216
■参考サイト
【Microsoft Access Club】
http://www.accessclub.jp/index.html
【ソフトウエア開発部】
http://www.ilovex.co.jp/Division/SRD/
■DataSetを1回だけ初回に宣言してその変数を使いまわすときに前回の内容が残る。
DisposeメソッドではなくClearメソッドを使うとデータの内容が削除される。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdatadatasetmemberstopic.asp
■データベースの書込み
Public Function WriteTestTBL(ByRef pCon As OleDb.OleDbConnection) As Boolean
Dim oAdapter As New OleDb.OleDbDataAdapter
Dim oCmdBldr As New OleDb.OleDbCommandBuilder(oAdapter)
Dim oData As New DataSet
Dim oRow As DataRow
Dim i As Integer = 0
Dim strSql As String
Dim strTBL As String = "Test"
strSql = "SELECT * FROM Test WHERE (日時 = #2006/01/07 23:00:00#) AND (番号 = 1)"
oData.Clear()
oAdapter.SelectCommand = New OleDb.OleDbCommand(strSql, pCon)
oAdapter.SelectCommand.Transaction = pCon.BeginTransaction 'トランザクションセット
Try
If (oAdapter.Fill(oData, strTBL) > 0) Then
oData.Tables(0).Rows(0).Item("日時") = "2006/01/07 23:00:00"
oData.Tables(0).Rows(0).Item("番号") = 1
Else
oRow = oData.Tables(strTBL).NewRow()
oRow.BeginEdit()
oRow("日時") = "2006/01/07 23:00:00"
oRow("番号") = 1
oRow.EndEdit()
oData.Tables(strTBL).Rows.Add(oRow)
oCmdBldr = New OleDb.OleDbCommandBuilder(oAdapter)
oAdapter.InsertCommand = oCmdBldr.GetInsertCommand
End If
oAdapter.Update(oData, strTBL)
oData.AcceptChanges() 'データセットのコミット
Catch ex As Exception
oAdapter.SelectCommand.Transaction.Rollback() 'トランザクションロールバック
Finally
If (IsNothing(oAdapter.SelectCommand.Transaction) <> True) Then
oAdapter.SelectCommand.Transaction.Commit() 'トランザクションコミット
oAdapter.SelectCommand.Transaction = Nothing 'トランザクション解放
End If
End Try
WriteTestTBL = True
oData.Dispose()
oCmdBldr.Dispose()
oAdapter.Dispose()
oRow = Nothing
oData = Nothing
oCmdBldr = Nothing
oAdapter = Nothing
End Function
■参考サイト
【MCSE braindumps】
http://www.mcse.ms/
http://www.microsoft.com/japan/msdn/thisweek/300x10/
■[VB.NET]
【Visual Basic .NET を使用してデータベースから DataSet オブジェクトを取得する方法】
http://support.microsoft.com/default.aspx?scid=kb;ja;301216
■参考サイト
【Microsoft Access Club】
http://www.accessclub.jp/index.html
【ソフトウエア開発部】
http://www.ilovex.co.jp/Division/SRD/
■DataSetを1回だけ初回に宣言してその変数を使いまわすときに前回の内容が残る。
DisposeメソッドではなくClearメソッドを使うとデータの内容が削除される。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdatadatasetmemberstopic.asp
■データベースの書込み
Public Function WriteTestTBL(ByRef pCon As OleDb.OleDbConnection) As Boolean
Dim oAdapter As New OleDb.OleDbDataAdapter
Dim oCmdBldr As New OleDb.OleDbCommandBuilder(oAdapter)
Dim oData As New DataSet
Dim oRow As DataRow
Dim i As Integer = 0
Dim strSql As String
Dim strTBL As String = "Test"
strSql = "SELECT * FROM Test WHERE (日時 = #2006/01/07 23:00:00#) AND (番号 = 1)"
oData.Clear()
oAdapter.SelectCommand = New OleDb.OleDbCommand(strSql, pCon)
oAdapter.SelectCommand.Transaction = pCon.BeginTransaction 'トランザクションセット
Try
If (oAdapter.Fill(oData, strTBL) > 0) Then
oData.Tables(0).Rows(0).Item("日時") = "2006/01/07 23:00:00"
oData.Tables(0).Rows(0).Item("番号") = 1
Else
oRow = oData.Tables(strTBL).NewRow()
oRow.BeginEdit()
oRow("日時") = "2006/01/07 23:00:00"
oRow("番号") = 1
oRow.EndEdit()
oData.Tables(strTBL).Rows.Add(oRow)
oCmdBldr = New OleDb.OleDbCommandBuilder(oAdapter)
oAdapter.InsertCommand = oCmdBldr.GetInsertCommand
End If
oAdapter.Update(oData, strTBL)
oData.AcceptChanges() 'データセットのコミット
Catch ex As Exception
oAdapter.SelectCommand.Transaction.Rollback() 'トランザクションロールバック
Finally
If (IsNothing(oAdapter.SelectCommand.Transaction) <> True) Then
oAdapter.SelectCommand.Transaction.Commit() 'トランザクションコミット
oAdapter.SelectCommand.Transaction = Nothing 'トランザクション解放
End If
End Try
WriteTestTBL = True
oData.Dispose()
oCmdBldr.Dispose()
oAdapter.Dispose()
oRow = Nothing
oData = Nothing
oCmdBldr = Nothing
oAdapter = Nothing
End Function
■参考サイト
【MCSE braindumps】
http://www.mcse.ms/
月曜日, 11月 28, 2005
木曜日, 11月 17, 2005
Google Analytics
■Webにスプレッドシートを埋め込むことができる?
【Num Sum:web spreadsheets】
http://www.numsum.com/
地域イベント検索サービス企業Zventsの創設者イーサン・ストック氏
【OnoTech】
http://onotech.blogspot.com/
【Num Sum:web spreadsheets】
http://www.numsum.com/
地域イベント検索サービス企業Zventsの創設者イーサン・ストック氏
【OnoTech】
http://onotech.blogspot.com/
木曜日, 11月 10, 2005
[VB.NET]Excelの表示形式
■Excelの表示形式の設定
Excel.Application.Workbooks(book).Sheets(sheet).Cells(row,col).NumberFormatLocal = "#,##0.0_ "
Excel.Application.Workbooks(book).Sheets(sheet).Cells(row,col).Validation.Delete()
Excel.Application.Workbooks(book).Sheets(sheet).Cells(row,col).Validation.Add(Type:=Excel.XlDVType.xlValidateDecimal, AlertStyle:=Excel.XlDVAlertStyle.xlValidAlertStop, Operator:=Excel.XlFormatConditionOperator.xlGreater, Formula1:="-999999999")
Excel.Application.Workbooks(book).Sheets(sheet).Cells(row,col).NumberFormatLocal = "#,##0.0_ "
Excel.Application.Workbooks(book).Sheets(sheet).Cells(row,col).Validation.Delete()
Excel.Application.Workbooks(book).Sheets(sheet).Cells(row,col).Validation.Add(Type:=Excel.XlDVType.xlValidateDecimal, AlertStyle:=Excel.XlDVAlertStyle.xlValidAlertStop, Operator:=Excel.XlFormatConditionOperator.xlGreater, Formula1:="-999999999")
水曜日, 11月 09, 2005
[VB.NET]Excelの終了処理
■Excelを終了させる時の処理
Dim xlsApp As Excel.Application
xlsApp.ActiveWorkbook.Close()
xlsApp.Quit()
xlsApp = Nothing
Dim xlsApp As Excel.Application
xlsApp.ActiveWorkbook.Close()
xlsApp.Quit()
xlsApp = Nothing
金曜日, 11月 04, 2005
アクセス解析リンク集
■フリーソフトでおすすめ!
このCGIは、KENT WEB にて公開されている Access Report を改造したスクリプトのようです。
サンプル画面を見ると一通りの機能は付いているようなのでおすすめできます。
【at works - access cgi】
http://atworks-online.net/access/access.html
■おすすめリンク
【はてな アクセス解析ソフトで安くていいソフトを教えてください。】
http://www.hatena.ne.jp/1122368973
【ウェブマスターはてな おすすめにアクセス解析ソフトを教えてください。...】
http://webmaster.hatena.ne.jp/1095378689
このCGIは、KENT WEB にて公開されている Access Report を改造したスクリプトのようです。
サンプル画面を見ると一通りの機能は付いているようなのでおすすめできます。
【at works - access cgi】
http://atworks-online.net/access/access.html
■おすすめリンク
【はてな アクセス解析ソフトで安くていいソフトを教えてください。】
http://www.hatena.ne.jp/1122368973
【ウェブマスターはてな おすすめにアクセス解析ソフトを教えてください。...】
http://webmaster.hatena.ne.jp/1095378689
月曜日, 10月 10, 2005
気になる情報
▼slコマンド 汽車
▼オフィス・ソフトのデータ形式
オープンソースのオフィス・ソフトOpenOffice.orgから誕生した
ODF(OpenDocument Format:オープン・ドキュメント・フォーマット)
ODFはXMLをベースとしたオフィス・ソフト向けのファイル・フォーマット。
■関連サイト
【オフィス・ソフトのファイル形式ODF(OpenDocument Format)がISO標準に】
http://itpro.nikkeibp.co.jp/article/NEWS/20060504/236970/
【OpenDocument Format Alliance】
http://www.odfalliance.org/
【OASIS、『ODF』対応製品の開発促進のため新技術委員会を開設】
http://japan.internet.com/webtech/20060308/12.html
【Placebo Effect :: OpenDocument(ODF)の参考資料(英語)】
http://www.catch.jp/blog/desktop/openoffice/a20060109.htm
▼オフィス・ソフトのデータ形式
オープンソースのオフィス・ソフトOpenOffice.orgから誕生した
ODF(OpenDocument Format:オープン・ドキュメント・フォーマット)
ODFはXMLをベースとしたオフィス・ソフト向けのファイル・フォーマット。
■関連サイト
【オフィス・ソフトのファイル形式ODF(OpenDocument Format)がISO標準に】
http://itpro.nikkeibp.co.jp/article/NEWS/20060504/236970/
【OpenDocument Format Alliance】
http://www.odfalliance.org/
【OASIS、『ODF』対応製品の開発促進のため新技術委員会を開設】
http://japan.internet.com/webtech/20060308/12.html
【Placebo Effect :: OpenDocument(ODF)の参考資料(英語)】
http://www.catch.jp/blog/desktop/openoffice/a20060109.htm
火曜日, 9月 20, 2005
火曜日, 9月 13, 2005
[VB2005]FlexGrid
■セルのデータ型を設定する。
Dim cs As C1.Win.C1FlexGrid.CellStyle
cs.DataTypeb = GetType(Integer)
■Borderスタイルを比較する。
Private Sub ToolStripComboBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ToolStripComboBox1.TextChanged
Dim tsmCmb As ToolStripComboBox
tsmCmb = sender
If (C1FlexGrid1.Rows.Count > 2) Then
C1FlexGrid1.Rows(1).Style.Border.Style = tsmCmb.SelectedIndex
C1FlexGrid1.Rows(1).Style.Border.Color = SystemColors.ControlDark
C1FlexGrid1.Cols(1).StyleFixedDisplay.Border.Style = tsmCmb.SelectedIndex
C1FlexGrid1.Cols(1).StyleFixedDisplay.Border.Color = SystemColors.Control
End If
End Sub
Private Sub FG_BorderStyle()
Dim cb As C1.Win.C1FlexGrid.CellBorder
ToolStripComboBox1.Items.Add(cb.Style.None.ToString)
ToolStripComboBox1.Items.Add(cb.Style.Flat.ToString)
ToolStripComboBox1.Items.Add(cb.Style.Double.ToString)
ToolStripComboBox1.Items.Add(cb.Style.Raised.ToString)
ToolStripComboBox1.Items.Add(cb.Style.Inset.ToString)
ToolStripComboBox1.Items.Add(cb.Style.Groove.ToString)
ToolStripComboBox1.Items.Add(cb.Style.Fillet.ToString)
ToolStripComboBox1.Items.Add(cb.Style.Dotted.ToString)
End Sub
Private Function FG_ChangBorderStyle(ByVal pVal As String) As Integer
Dim cb As C1.Win.C1FlexGrid.CellBorder
Select Case pVal
Case cb.Style.None.ToString : FG_ChangBorderStyle = 0
Case cb.Style.Flat.ToString : FG_ChangBorderStyle = 1
Case cb.Style.Double.ToString : FG_ChangBorderStyle = 2
Case cb.Style.Raised.ToString : FG_ChangBorderStyle = 3
Case cb.Style.Inset.ToString : FG_ChangBorderStyle = 4
Case cb.Style.Groove.ToString : FG_ChangBorderStyle = 5
Case cb.Style.Fillet.ToString : FG_ChangBorderStyle = 6
Case cb.Style.Dotted.ToString : FG_ChangBorderStyle = 7
End Select
End Function
■データをクリアして再描画する。
'セルの全てがクリアされる。
C1FlexGrid1.Clear(C1.Win.C1FlexGrid.ClearFlags.All)
'①C1FlexGrid1.Clear(C1.Win.C1FlexGrid.ClearFlags.Content)
'②C1FlexGrid1.Clear(C1.Win.C1FlexGrid.ClearFlags.Style)
'③C1FlexGrid1.Clear(C1.Win.C1FlexGrid.ClearFlags.UserData)
C1FlexGrid1.Rows.Count = 0
'再描画したい処理を記述する。
C1FlexGrid1.Refresh()
●Clearメソッド
①Content
明示的にセルの範囲を指定し、ClearFlags列挙型Content要素によってデータをクリアする。
C1.Win.C1FlexGrid.CellRange cr = c1FlexGrid1.GetCellRange(1,1,2,2);
cr.Clear(C1.Win.C1FlexGrid.ClearFlags.Content);
②Style
Style要素を指定してクリアすると、指定した範囲だけではなく、全ての行および列のスタイル情報がクリア
される。列幅やセルの色/列の表示位置を変更するドラッグドロップの設定/ソート不可の設定などがデフォ
ルトに戻る。
③UserData
?
【FlexGrid for .NET 修正版リリースノート】
http://ftp.grapecity.com/patches/FlexGridNETwin/ReleaseNote_2120033_patch.htm
Dim cs As C1.Win.C1FlexGrid.CellStyle
cs.DataTypeb = GetType(Integer)
■Borderスタイルを比較する。
Private Sub ToolStripComboBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ToolStripComboBox1.TextChanged
Dim tsmCmb As ToolStripComboBox
tsmCmb = sender
If (C1FlexGrid1.Rows.Count > 2) Then
C1FlexGrid1.Rows(1).Style.Border.Style = tsmCmb.SelectedIndex
C1FlexGrid1.Rows(1).Style.Border.Color = SystemColors.ControlDark
C1FlexGrid1.Cols(1).StyleFixedDisplay.Border.Style = tsmCmb.SelectedIndex
C1FlexGrid1.Cols(1).StyleFixedDisplay.Border.Color = SystemColors.Control
End If
End Sub
Private Sub FG_BorderStyle()
Dim cb As C1.Win.C1FlexGrid.CellBorder
ToolStripComboBox1.Items.Add(cb.Style.None.ToString)
ToolStripComboBox1.Items.Add(cb.Style.Flat.ToString)
ToolStripComboBox1.Items.Add(cb.Style.Double.ToString)
ToolStripComboBox1.Items.Add(cb.Style.Raised.ToString)
ToolStripComboBox1.Items.Add(cb.Style.Inset.ToString)
ToolStripComboBox1.Items.Add(cb.Style.Groove.ToString)
ToolStripComboBox1.Items.Add(cb.Style.Fillet.ToString)
ToolStripComboBox1.Items.Add(cb.Style.Dotted.ToString)
End Sub
Private Function FG_ChangBorderStyle(ByVal pVal As String) As Integer
Dim cb As C1.Win.C1FlexGrid.CellBorder
Select Case pVal
Case cb.Style.None.ToString : FG_ChangBorderStyle = 0
Case cb.Style.Flat.ToString : FG_ChangBorderStyle = 1
Case cb.Style.Double.ToString : FG_ChangBorderStyle = 2
Case cb.Style.Raised.ToString : FG_ChangBorderStyle = 3
Case cb.Style.Inset.ToString : FG_ChangBorderStyle = 4
Case cb.Style.Groove.ToString : FG_ChangBorderStyle = 5
Case cb.Style.Fillet.ToString : FG_ChangBorderStyle = 6
Case cb.Style.Dotted.ToString : FG_ChangBorderStyle = 7
End Select
End Function
■データをクリアして再描画する。
'セルの全てがクリアされる。
C1FlexGrid1.Clear(C1.Win.C1FlexGrid.ClearFlags.All)
'①C1FlexGrid1.Clear(C1.Win.C1FlexGrid.ClearFlags.Content)
'②C1FlexGrid1.Clear(C1.Win.C1FlexGrid.ClearFlags.Style)
'③C1FlexGrid1.Clear(C1.Win.C1FlexGrid.ClearFlags.UserData)
C1FlexGrid1.Rows.Count = 0
'再描画したい処理を記述する。
C1FlexGrid1.Refresh()
●Clearメソッド
①Content
明示的にセルの範囲を指定し、ClearFlags列挙型Content要素によってデータをクリアする。
C1.Win.C1FlexGrid.CellRange cr = c1FlexGrid1.GetCellRange(1,1,2,2);
cr.Clear(C1.Win.C1FlexGrid.ClearFlags.Content);
②Style
Style要素を指定してクリアすると、指定した範囲だけではなく、全ての行および列のスタイル情報がクリア
される。列幅やセルの色/列の表示位置を変更するドラッグドロップの設定/ソート不可の設定などがデフォ
ルトに戻る。
③UserData
?
【FlexGrid for .NET 修正版リリースノート】
http://ftp.grapecity.com/patches/FlexGridNETwin/ReleaseNote_2120033_patch.htm
木曜日, 9月 08, 2005
[VB2005]ContextMenuStrip
■ToolStripSeparatorのWidthプロパティを設定はできない?
■チェックが表示されるエリアを非表示にする。
ShowCheckMarginとShowImageMarginプロパティをFalseにする。
■チェックが表示されるエリアを非表示にする。
ShowCheckMarginとShowImageMarginプロパティをFalseにする。
火曜日, 8月 30, 2005
[VB.NET]ガベージコレクション
■ガベージコレクションを明示的に行う。
System.GC クラス
GC.Collect()
ガベージコレクションは、.NET Framewrok が必要と判断したときに随時実行されているので、明示的に
ガベージコレクションを行う必要はないが、意図的に行いたいときは実行に負荷がかかるためそのことを考慮
して使用しなくてはならない。
■参考サイト
【オブジェクトの解放について】
http://www.microsoft.com/japan/msdn/vbasic/migration/tips/ObjectDispose/
System.GC クラス
GC.Collect()
ガベージコレクションは、.NET Framewrok が必要と判断したときに随時実行されているので、明示的に
ガベージコレクションを行う必要はないが、意図的に行いたいときは実行に負荷がかかるためそのことを考慮
して使用しなくてはならない。
■参考サイト
【オブジェクトの解放について】
http://www.microsoft.com/japan/msdn/vbasic/migration/tips/ObjectDispose/
月曜日, 8月 29, 2005
[VB2005]ToolStripMenuItem
■CheckStateプロパティ
Checked :チェックボックスにチェックマークが表示され、コントロールがくぼんで表示されます。
Indeterminate :チェックボックスに・マークが表示され、コントロールがくぼんで表示されます。
Unchecked :チェックボックスがコントロールがフラットに表示されます。
■参考サイト
【CheckState クラスのフィールド】
http://www.jp.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformscheckboxclasscheckstatetopic.asp
【みっちーわーるど】
http://www1.mahoroba.ne.jp/~mitt/index.html
Checked :チェックボックスにチェックマークが表示され、コントロールがくぼんで表示されます。
Indeterminate :チェックボックスに・マークが表示され、コントロールがくぼんで表示されます。
Unchecked :チェックボックスがコントロールがフラットに表示されます。
■参考サイト
【CheckState クラスのフィールド】
http://www.jp.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformscheckboxclasscheckstatetopic.asp
【みっちーわーるど】
http://www1.mahoroba.ne.jp/~mitt/index.html
土曜日, 8月 20, 2005
[VB共通]DisposeとClose
【オブジェクトの破棄を保証する/じゃんぬねっと (C#, VB.NET)】
http://jeanne.wankuma.com/tips/programing/01-dispose.html
http://jeanne.wankuma.com/tips/programing/01-dispose.html
火曜日, 8月 16, 2005
[VB共通]基本構文
■For Each ステートメント
オブジェクトコレクション(Controlsコレクション)の要素を取り出す。
[VB.NET]
Dim oObj As Object
For Each oObj In Me.Controls
Next oObj
[VB2005]
Dim oObj As Object
For Each oObj In Me.Controls
Next oObj
■オーバーロード?
引数の型や種類が異なる同じ名前のメソッドを宣言すること。
Optionalで違う型の引数を宣言することはできない。
Optionalを使いたいときは引数の位置を変える必要がある。
■参考サイト
【@IT:連載:改訂版 プロフェッショナルVB.NETプログラミング Chapter 05 オブジェクト関連の変化】
http://www.atmarkit.co.jp/fdotnet/vb6tonet2/vbnet2_05/vbnet2_05_01.html
■New宣言
①Dim oData As DataSet = New DataSet()
②Dim oData As New DataSet
上記の①と②は同じ意味?②の方は、サンプルで使われていることが多い宣言の仕方である。しかも、シンプル!
【オブジェクトの宣言と参照代入 : ADO入門講座】
http://www.accessclub.jp/ado/03.html
オブジェクトコレクション(Controlsコレクション)の要素を取り出す。
[VB.NET]
Dim oObj As Object
For Each oObj In Me.Controls
Next oObj
[VB2005]
Dim oObj As Object
For Each oObj In Me.Controls
Next oObj
■オーバーロード?
引数の型や種類が異なる同じ名前のメソッドを宣言すること。
Optionalで違う型の引数を宣言することはできない。
Optionalを使いたいときは引数の位置を変える必要がある。
■参考サイト
【@IT:連載:改訂版 プロフェッショナルVB.NETプログラミング Chapter 05 オブジェクト関連の変化】
http://www.atmarkit.co.jp/fdotnet/vb6tonet2/vbnet2_05/vbnet2_05_01.html
■New宣言
①Dim oData As DataSet = New DataSet()
②Dim oData As New DataSet
上記の①と②は同じ意味?②の方は、サンプルで使われていることが多い宣言の仕方である。しかも、シンプル!
【オブジェクトの宣言と参照代入 : ADO入門講座】
http://www.accessclub.jp/ado/03.html
日曜日, 8月 14, 2005
金曜日, 7月 15, 2005
[.NET共通]セットアップ作成方法
■メモ
◎インストールするフォルダ構成はセットアップのプロジェクトの中で作成する。そのとき、ターゲットとなる
インストール先を考慮しなくてはならない。
「アプリケーション フォルダ」のプロパティ「DefaultLocation」を設定する。
◎ショートカットもセットアップのプロジェクトの中で作成する。アイコン表示は、プロパティの「Icon」で
リンクするEXEなどを指定する。
◎空のフォルダを作成したいときは、作成したフォルダのプロパティの「AlwaysCreate」を「True」に設定
する。
◎アンインストールのショートカットを「ユーザのプログラム メニュー」に作成する方法
1.「ファイルシステム」->「対象コンピュータ上のファイルシステム」を右クリックし、
「特別なフォルダの追加」で「システム フォルダ」を選択しフォルダを追加する。
2.システムフォルダ配下の「system32」フォルダにある「msiexec.exe」を実行環境
フォルダにコピーする。
3.コピーした「msiexec.exe」を「アプリケーション フォルダ」に追加する。
4.「msiexec.exe」を指定したショートカットを作成する。
5.ショートカットのプロパティ「Arguments」にパラメータを追加する。
例:/x{CA7FD919-BDB6-43B0-96DF-5782FE49CA74} /qb
6.ショートカットのプロパティ「WorkingFolder」に「システム フォルダ」を指定する。
■msiexec.exeのヘルプ
Windows (R) インストーラ. V 3.01.4000.1823
msiexec /Option <必須パラメータ> [省略可能なパラメータ]
インストール オプション
製品をインストールまたは構成します。
/a
管理用ツール - ネットワーク上の製品をインストールします。
/j [/t <変換一覧>] [/g <言語 ID>]
製品をアドバタイズします - すべてのユーザーには m、現在のユーザーには u を指定します。
製品をアンインストールします。
表示オプション
/quiet
Quiet モード - ユーザーの操作なし
/passive
無人モード - 進行状況バーのみ
/q[nbrf] ユーザー インターフェイスのレベルを設定します。
n - なし b - 基本 r - 簡易 f - 完全 (既定)
/help ヘルプ情報
再起動オプション
/norestart
インストール完了後に再起動しません。
/promptrestart
再起動が必要な場合は、ユーザーに再起動を要求します。
/forcerestart
常に、インストール後コンピュータを再起動します。
ログ オプション
/l[iwearucmopvx+!*]
i - 状態メッセージ
w - 致命的ではない警告
e - すべてのエラー メッセージ
a - 操作のスタートアップ
r - 特定の操作の記録
u - ユーザーの要求
c - UI パラメータの初期値
m - メモリ不足または致命的な終了に関する情報
o - ディスク領域不足メッセージ
p - ターミナルのプロパティ
v - 詳細出力
x - 詳細デバッグ情報
+ - 既存のログ ファイルに追加
! - 各行をログにフラッシュ
* - v オプションと
x オプションを除くすべての情報をログに記録します。
/log <ログ ファイル>
/l* <ログ ファイル> と指定したときと同じ情報がログに記録されます。
更新オプション
/update[;Update2.msp]
更新を適用します。
/uninstall <修正プログラム コード GUID>[;Update2.msp]
/package
製品の更新を削除します。
修復オプション
/f[pecmsodauv]
製品を修復します。
p - ファイルが見つからない場合のみ
o - ファイルが見つからない、または古いバージョンがインストールされている場合 (既定)
e - ファイルが見つからない、同じバージョンまたは古いバージョンがインストールされている場合
d - ファイルが見つからない、または違うバージョンがインストールされている場合
c - ファイルが見つからない、またはチェックサムと計算された値が一致しない場合
a - すべてのファイルをインストールする u - すべてのユーザー固有の必須レジストリ エントリ (既定)
m - すべてコンピュータ固有の必須レジストリ エントリ (既定)
s - すべての既存のショートカット (既定)
v - ソースから実行して、パッケージをローカルに再キャッシュする
パブリック プロパティの設定 [PROPERTY=プロパティ値]
コマンド ラインの構文の詳細については、Windows (R) インストーラ SDK を参照してください。
Copyright (C) Microsoft Corporation. All rights reserved.Portions of this software are based in part on the work of the Independent JPEG Group.
■参考サイト
【[HOW TO] Visual Studio .NET でセットアップ パッケージを作成する方法】
http://support.microsoft.com/?scid=kb;ja;307353&spid=3039&sid=global
【ベース ドライバと Intel(R) PROSet のコマンドライン インストール:
インテル(R) ネットワーク アダプタ ユーザ ガイド】
http://support.jp.dell.com/docs/NETWORK/9195P/intel_ug/ja/cmd_ln.htm
■インストールしたファイルをアンインストールで削除しない方法
ファイルプロパティにある「Permanent」プロパティを「True」にする。デフォルトは、アンインストール対象
の「False」が設定されている。
■参考サイト
【Permanent プロパティ】
http://s.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vsintro7/html/vxgrfpermanentproperty.asp
◎インストールするフォルダ構成はセットアップのプロジェクトの中で作成する。そのとき、ターゲットとなる
インストール先を考慮しなくてはならない。
「アプリケーション フォルダ」のプロパティ「DefaultLocation」を設定する。
◎ショートカットもセットアップのプロジェクトの中で作成する。アイコン表示は、プロパティの「Icon」で
リンクするEXEなどを指定する。
◎空のフォルダを作成したいときは、作成したフォルダのプロパティの「AlwaysCreate」を「True」に設定
する。
◎アンインストールのショートカットを「ユーザのプログラム メニュー」に作成する方法
1.「ファイルシステム」->「対象コンピュータ上のファイルシステム」を右クリックし、
「特別なフォルダの追加」で「システム フォルダ」を選択しフォルダを追加する。
2.システムフォルダ配下の「system32」フォルダにある「msiexec.exe」を実行環境
フォルダにコピーする。
3.コピーした「msiexec.exe」を「アプリケーション フォルダ」に追加する。
4.「msiexec.exe」を指定したショートカットを作成する。
5.ショートカットのプロパティ「Arguments」にパラメータを追加する。
例:/x{CA7FD919-BDB6-43B0-96DF-5782FE49CA74} /qb
6.ショートカットのプロパティ「WorkingFolder」に「システム フォルダ」を指定する。
■msiexec.exeのヘルプ
Windows (R) インストーラ. V 3.01.4000.1823
msiexec /Option <必須パラメータ> [省略可能なパラメータ]
インストール オプション
製品をインストールまたは構成します。
/a
管理用ツール - ネットワーク上の製品をインストールします。
/j
製品をアドバタイズします - すべてのユーザーには m、現在のユーザーには u を指定します。
製品をアンインストールします。
表示オプション
/quiet
Quiet モード - ユーザーの操作なし
/passive
無人モード - 進行状況バーのみ
/q[nbrf] ユーザー インターフェイスのレベルを設定します。
n - なし b - 基本 r - 簡易 f - 完全 (既定)
/help ヘルプ情報
再起動オプション
/norestart
インストール完了後に再起動しません。
/promptrestart
再起動が必要な場合は、ユーザーに再起動を要求します。
/forcerestart
常に、インストール後コンピュータを再起動します。
ログ オプション
/l[iwearucmopvx+!*]
i - 状態メッセージ
w - 致命的ではない警告
e - すべてのエラー メッセージ
a - 操作のスタートアップ
r - 特定の操作の記録
u - ユーザーの要求
c - UI パラメータの初期値
m - メモリ不足または致命的な終了に関する情報
o - ディスク領域不足メッセージ
p - ターミナルのプロパティ
v - 詳細出力
x - 詳細デバッグ情報
+ - 既存のログ ファイルに追加
! - 各行をログにフラッシュ
* - v オプションと
x オプションを除くすべての情報をログに記録します。
/log <ログ ファイル>
/l* <ログ ファイル> と指定したときと同じ情報がログに記録されます。
更新オプション
/update
更新を適用します。
/uninstall <修正プログラム コード GUID>[;Update2.msp]
/package
製品の更新を削除します。
修復オプション
/f[pecmsodauv]
製品を修復します。
p - ファイルが見つからない場合のみ
o - ファイルが見つからない、または古いバージョンがインストールされている場合 (既定)
e - ファイルが見つからない、同じバージョンまたは古いバージョンがインストールされている場合
d - ファイルが見つからない、または違うバージョンがインストールされている場合
c - ファイルが見つからない、またはチェックサムと計算された値が一致しない場合
a - すべてのファイルをインストールする u - すべてのユーザー固有の必須レジストリ エントリ (既定)
m - すべてコンピュータ固有の必須レジストリ エントリ (既定)
s - すべての既存のショートカット (既定)
v - ソースから実行して、パッケージをローカルに再キャッシュする
パブリック プロパティの設定 [PROPERTY=プロパティ値]
コマンド ラインの構文の詳細については、Windows (R) インストーラ SDK を参照してください。
Copyright (C) Microsoft Corporation. All rights reserved.Portions of this software are based in part on the work of the Independent JPEG Group.
■参考サイト
【[HOW TO] Visual Studio .NET でセットアップ パッケージを作成する方法】
http://support.microsoft.com/?scid=kb;ja;307353&spid=3039&sid=global
【ベース ドライバと Intel(R) PROSet のコマンドライン インストール:
インテル(R) ネットワーク アダプタ ユーザ ガイド】
http://support.jp.dell.com/docs/NETWORK/9195P/intel_ug/ja/cmd_ln.htm
■インストールしたファイルをアンインストールで削除しない方法
ファイルプロパティにある「Permanent」プロパティを「True」にする。デフォルトは、アンインストール対象
の「False」が設定されている。
■参考サイト
【Permanent プロパティ】
http://s.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vsintro7/html/vxgrfpermanentproperty.asp
[VB.NET]ExcelのPrintOutメソッド
■PrintOutメソッド
選択したオブジェクトを印刷することができる。パラメータには、
印刷するページ (印刷開始ページから終了ページまでを指定)->From:=開始ページ, To:=終了ページ
部数->Copies:=部数
印刷前のプレビュー->Preview:=「プレビュー有り:True、プレビュー無し:False」
使用するプリンタの名前->ActivePrinter:=「"PrinterName"、省略のときデフォルトプリンタ使用」
ファイルの印刷か、
部数単位印刷->Collate:=「部単位印刷有り:True(-1)、部単位印刷無し:False(0)、既定値はTrue」
プリントするファイルの名前など、
数多くの任意パラメータを指定することができます。
■例
指定したファイルの最初のページのみを 2 部、印刷前にプレビューした後に指定のプリンタで印刷します。
[VB.NET]
DirectCast(ThisWorkbook.Sheets(1), Excel.Worksheet).PrintOut(From:=1, To:=1,Copies:=2, Collate:=True, Preview:=True, ActivePrinter:="PrinterName")
// C#
((Excel.Worksheet)ThisApplication.Sheets[1]).
PrintOut(1, 1, 2, true, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
■参考サイト
【.NET 開発者の観点から捉えた Excel オブジェクト モデル】
http://www.microsoft.com/japan/msdn/office/vsto2003/ExcelObj.asp
選択したオブジェクトを印刷することができる。パラメータには、
印刷するページ (印刷開始ページから終了ページまでを指定)->From:=開始ページ, To:=終了ページ
部数->Copies:=部数
印刷前のプレビュー->Preview:=「プレビュー有り:True、プレビュー無し:False」
使用するプリンタの名前->ActivePrinter:=「"PrinterName"、省略のときデフォルトプリンタ使用」
ファイルの印刷か、
部数単位印刷->Collate:=「部単位印刷有り:True(-1)、部単位印刷無し:False(0)、既定値はTrue」
プリントするファイルの名前など、
数多くの任意パラメータを指定することができます。
■例
指定したファイルの最初のページのみを 2 部、印刷前にプレビューした後に指定のプリンタで印刷します。
[VB.NET]
DirectCast(ThisWorkbook.Sheets(1), Excel.Worksheet).PrintOut(From:=1, To:=1,Copies:=2, Collate:=True, Preview:=True, ActivePrinter:="PrinterName")
// C#
((Excel.Worksheet)ThisApplication.Sheets[1]).
PrintOut(1, 1, 2, true, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
■参考サイト
【.NET 開発者の観点から捉えた Excel オブジェクト モデル】
http://www.microsoft.com/japan/msdn/office/vsto2003/ExcelObj.asp
[VB.NET]タスクスケジュール
[参照設定」->「参照の追加」->「COM」->「Microsoft WMI Scripting V1.1 Library」を追加する。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strErrMsg As String
Dim intErrNo As Integer
Dim strErrDetail As String
Dim strErrType As String
Dim Job As WbemScripting.SWbemObject
Dim Locator As WbemScripting.SWbemLocator
Dim Service As Object
Try
Dim Ret As Int32
Dim ID As Int32
Dim MesStr As String
Locator = New WbemScripting.SWbemLocator
'Set Service = Locator.ConnectServer("ComputarName","root\cimv2","UserName","Password")
Service = Locator.ConnectServer(".")
Job = Service.Get("Win32_ScheduledJob")
'Command :Name of the executable program, batch file, or script to be run.
'StartTime :UTC time to run the job. This is of the form YYYYMMDDHHMMSS.MMMMMM(+-)OOO,
' where YYYYMMDD must be replaced by ********. Example: ********123000.000000-420,
' which implies 12:30 P.M. Pacific time with daylight saving time in effect.
'RunRepeatedly :Indicates whether the scheduled job should run repeatedly on the days that
' the job is scheduled. The default is FALSE. This parameter is optional.
'DaysOfWeek :Days of the week when the task should be run. Values are:
' 1 - 月曜日、2 - 火曜日、4 - 水曜日、8 - 木曜日、16 - 金曜日、32 - 土曜日、64 - 日曜日
' To run the task on multiple days, use a logical OR to combine values.
' For example, to run a task on Tuesday, Thursday, and Saturday, use the following code:
' 2 OR 8 OR 32
' To run a task on multiple days, you must set the RunRepeatedly parameter to True.
'DaysOfMonth :Days of the month when the job is scheduled to run;
' used only when the RunRepeatedly parameter is True. This parameter is optional.
'InteractWithDesktop:Indicates whether the specified job should be interactive
' (meaning that a user can give input to the scheduled job while it is executing).
' The default is False. This parameter is optional and is rarely set to True. In general,
' the reason to use a scheduled task is to allow a task to be carried out without any user interaction.
'JobID :Identifier number of the job. This parameter is a handle to the job being scheduled on this computer.
'Ret = Job.Create("Command", "StartTime[YYYYMMDDHHMMSS.MMMMMM(+-)OOO]", RunRepeatedly, DaysOfWeek, DaysOfMonth, InteractWithDesktop, JobID)
Ret = CLng(Job.Create("notepad.exe", "********123000.000000-900", False, 1, 1, False, ID))
If Ret = 0 Then
MsgBox("タスクを ID:" & ID & " で追加しました。")
Else
MsgBox("タスク追加に失敗しました。")
End If
Catch ex As Exception
strErrMsg = Err.Description
intErrNo = Err.Number
strErrDetail = ex.ToString()
strErrType = ex.GetType().ToString()
MsgBox(strErrMsg & vbCrLf & intErrNo & vbCrLf & strErrDetail & vbCrLf & strErrType)
Finally
Job = Nothing
Service = Nothing
Locator = Nothing
End Try
End Sub
■参考サイト
【- タスクスケジュールを追加する [Win32_ScheduledJob] -】
http://wmifun.atinfinity.net/sample/win32_scheduledjobb.html
【VBS for WMI】
http://www.geocities.jp/maru3128/wmi.html
Microsoft Windows 2000 Scripting Guide - Creating Scheduled Tasks
http://www.microsoft.com/technet/scriptcenter/guide/sas_man_rsxs.mspx
Windows 2000 タスク スケジューラ
http://www.microsoft.com/japan/
technet/prodtechnol/windows2000serv/maintain/featusability/tsksched.mspx
Hey, Scripting Guy!
http://www.microsoft.com/japan/
technet/scriptcenter/resources/qanda/sept04/hey0922.mspx
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strErrMsg As String
Dim intErrNo As Integer
Dim strErrDetail As String
Dim strErrType As String
Dim Job As WbemScripting.SWbemObject
Dim Locator As WbemScripting.SWbemLocator
Dim Service As Object
Try
Dim Ret As Int32
Dim ID As Int32
Dim MesStr As String
Locator = New WbemScripting.SWbemLocator
'Set Service = Locator.ConnectServer("ComputarName","root\cimv2","UserName","Password")
Service = Locator.ConnectServer(".")
Job = Service.Get("Win32_ScheduledJob")
'Command :Name of the executable program, batch file, or script to be run.
'StartTime :UTC time to run the job. This is of the form YYYYMMDDHHMMSS.MMMMMM(+-)OOO,
' where YYYYMMDD must be replaced by ********. Example: ********123000.000000-420,
' which implies 12:30 P.M. Pacific time with daylight saving time in effect.
'RunRepeatedly :Indicates whether the scheduled job should run repeatedly on the days that
' the job is scheduled. The default is FALSE. This parameter is optional.
'DaysOfWeek :Days of the week when the task should be run. Values are:
' 1 - 月曜日、2 - 火曜日、4 - 水曜日、8 - 木曜日、16 - 金曜日、32 - 土曜日、64 - 日曜日
' To run the task on multiple days, use a logical OR to combine values.
' For example, to run a task on Tuesday, Thursday, and Saturday, use the following code:
' 2 OR 8 OR 32
' To run a task on multiple days, you must set the RunRepeatedly parameter to True.
'DaysOfMonth :Days of the month when the job is scheduled to run;
' used only when the RunRepeatedly parameter is True. This parameter is optional.
'InteractWithDesktop:Indicates whether the specified job should be interactive
' (meaning that a user can give input to the scheduled job while it is executing).
' The default is False. This parameter is optional and is rarely set to True. In general,
' the reason to use a scheduled task is to allow a task to be carried out without any user interaction.
'JobID :Identifier number of the job. This parameter is a handle to the job being scheduled on this computer.
'Ret = Job.Create("Command", "StartTime[YYYYMMDDHHMMSS.MMMMMM(+-)OOO]", RunRepeatedly, DaysOfWeek, DaysOfMonth, InteractWithDesktop, JobID)
Ret = CLng(Job.Create("notepad.exe", "********123000.000000-900", False, 1, 1, False, ID))
If Ret = 0 Then
MsgBox("タスクを ID:" & ID & " で追加しました。")
Else
MsgBox("タスク追加に失敗しました。")
End If
Catch ex As Exception
strErrMsg = Err.Description
intErrNo = Err.Number
strErrDetail = ex.ToString()
strErrType = ex.GetType().ToString()
MsgBox(strErrMsg & vbCrLf & intErrNo & vbCrLf & strErrDetail & vbCrLf & strErrType)
Finally
Job = Nothing
Service = Nothing
Locator = Nothing
End Try
End Sub
■参考サイト
【- タスクスケジュールを追加する [Win32_ScheduledJob] -】
http://wmifun.atinfinity.net/sample/win32_scheduledjobb.html
【VBS for WMI】
http://www.geocities.jp/maru3128/wmi.html
Microsoft Windows 2000 Scripting Guide - Creating Scheduled Tasks
http://www.microsoft.com/technet/scriptcenter/guide/sas_man_rsxs.mspx
Windows 2000 タスク スケジューラ
http://www.microsoft.com/japan/
technet/prodtechnol/windows2000serv/maintain/featusability/tsksched.mspx
Hey, Scripting Guy!
http://www.microsoft.com/japan/
technet/scriptcenter/resources/qanda/sept04/hey0922.mspx
木曜日, 7月 14, 2005
[VB.NET or VB2005]例外処理
■エラー取得
Dim strErrMsg As String
Dim intErrNo As Integer
Dim strErrDetail As String
Dim strErrType As String
Try
' 処理内容
Catch ex As Exception
strErrMsg = Err.Description
intErrNo = Err.Number
strErrDetail = ex.ToString()
strErrType = ex.GetType().ToString()
MsgBox("エラー内容:" & Err.Description & "(" & Err.Number & ")" & vbCrLf & _
"詳細内容:" & ex.ToString() & "(" & ex.GetType().ToString() & ")")
End Try
■Throwステートメント:プログラムの実行を中断し、プログラム内の関連するCatchブロックに制御を移す。
■参考サイト
【VB 例外 - Throw】
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard33.htm
Dim strErrMsg As String
Dim intErrNo As Integer
Dim strErrDetail As String
Dim strErrType As String
Try
' 処理内容
Catch ex As Exception
strErrMsg = Err.Description
intErrNo = Err.Number
strErrDetail = ex.ToString()
strErrType = ex.GetType().ToString()
MsgBox("エラー内容:" & Err.Description & "(" & Err.Number & ")" & vbCrLf & _
"詳細内容:" & ex.ToString() & "(" & ex.GetType().ToString() & ")")
End Try
■Throwステートメント:プログラムの実行を中断し、プログラム内の関連するCatchブロックに制御を移す。
■参考サイト
【VB 例外 - Throw】
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard33.htm
火曜日, 7月 05, 2005
[ORACLE]インストール・テーブル作成
初期サイズ
Data Warehouse 400MB
General Purpose 400MB
New Database の Default 250MB
Transaction Processing 330MB
■参考ページ
http://www.oracle.co.jp/2shin/ora76/16_17.html
▼問題
インストーラのスワップ領域のエラー。
▼解決策
インストールしているユーザ名に日本語(全角文字)を使用しない。
■参考サイト
http://forums.belution.com/ja/oracle/000/000/06s.shtml
▼問題
『OIP-04117: 更新可能なセットではありません。』のエラーがDbEditとDbAddNewで起きる。
環境:Oracle9i Database 9.2.0.1.0
▼解決策
Oracle Objects for OLE 9.2.0.4.8 patchモジュールを適用すると解決する。
▼問題
フィールド名に『ROW』を使用するとテーブル作成でエラーとなる。
▼解決策
ダブルコーテイションで囲えば作成できる。
▼問題
フィールド名に『ROW』を使用すると『OIP-04117: 更新可能なセットではありません。』のエラーが起きる。
環境:Oracle9i Database 9.2.0.1.0
▼解決策
フィールド名に『ROW』の使用をやめるか、Oracle Objects for OLE 9.2.0.4.8 patchモジュールを
適用する。
Data Warehouse 400MB
General Purpose 400MB
New Database の Default 250MB
Transaction Processing 330MB
■参考ページ
http://www.oracle.co.jp/2shin/ora76/16_17.html
▼問題
インストーラのスワップ領域のエラー。
▼解決策
インストールしているユーザ名に日本語(全角文字)を使用しない。
■参考サイト
http://forums.belution.com/ja/oracle/000/000/06s.shtml
▼問題
『OIP-04117: 更新可能なセットではありません。』のエラーがDbEditとDbAddNewで起きる。
環境:Oracle9i Database 9.2.0.1.0
▼解決策
Oracle Objects for OLE 9.2.0.4.8 patchモジュールを適用すると解決する。
▼問題
フィールド名に『ROW』を使用するとテーブル作成でエラーとなる。
▼解決策
ダブルコーテイションで囲えば作成できる。
▼問題
フィールド名に『ROW』を使用すると『OIP-04117: 更新可能なセットではありません。』のエラーが起きる。
環境:Oracle9i Database 9.2.0.1.0
▼解決策
フィールド名に『ROW』の使用をやめるか、Oracle Objects for OLE 9.2.0.4.8 patchモジュールを
適用する。
タスクのスケジュール
【TechNet ホーム > スクリプト センター >
スクリプト一覧 > オペレーティング システム > タスクのスケジュール】
http://www.microsoft.com/japan/technet/scriptcenter/scripts/os/tasks/default.mspx
【スクリプト一覧】
http://www.microsoft.com/japan/technet/scriptcenter/scripts/default.mspx
【WMI Fun !! ~ WMI に興味がある方・システム管理者必見 !! ~】
http://wmifun.atinfinity.net/
スクリプト一覧 > オペレーティング システム > タスクのスケジュール】
http://www.microsoft.com/japan/technet/scriptcenter/scripts/os/tasks/default.mspx
【スクリプト一覧】
http://www.microsoft.com/japan/technet/scriptcenter/scripts/default.mspx
【WMI Fun !! ~ WMI に興味がある方・システム管理者必見 !! ~】
http://wmifun.atinfinity.net/
木曜日, 6月 30, 2005
土曜日, 6月 25, 2005
日曜日, 6月 19, 2005
[VB.NET]イベントログ関数
■イベントログを書込む
Diagnostics.EventLog.WriteEntry(pSource, pExp, pType, pEventID, pCategory, pData)
パラメータ
pSource:ソース項目。(省略可能)
pExp:説明項目。イベントログに書き込む文字列。
pType:種類項目。EventLogEntryType値。(省略可能)
pEventID:イベントID項目。(省略可能)
pCategory:分類項目。(省略可能)
pData:データ項目。バイナリデータを保持するバイト配列。(省略可能)
▼EventLogEntryType値
メンバ名:説明
Error:エラー。重大な問題を示す。通常は、機能またはデータの損失です。
FailureAudit:監査エラー。ファイルを開けなかった場合など。セキュリティイベント。
Information:情報。有効で成功した操作を示します。
SuccessAudit:成功した監査。ログオンの成功した場合など。セキュリティイベント。
Warning:警告。緊急を要する問題ではないが、今後問題の原因となりうることを示す。
■イベントログを読込む
Dim oLogs() As System.Diagnostics.EventLog
' イベントログ配列を読込む
oLogs = Diagnostics.EventLog.GetEventLogs()
Dim oLog As Diagnostics.EventLog
For Each oLog In oLogs
Dim oEntry As Diagnostics.EventLogEntry
For Each oEntry In oLog.Entries
Next
Next
oLog.Logの種類
"Application"
"Security"
"System"
■イベントログを削除
' ソース名
Dim pSource As String
If (Diagnostics.EventLog.SourceExists(pSource) = True) Then
' ログ名取得
Dim oLogName As String = Diagnostics.EventLog.LogNameFromSourceName(pSource, ".")
Diagnostics.EventLog.DeleteEventSource(pSource, "")
Diagnostics.EventLog.Delete(oLogName, "")
End If
※エラー
Dim oLogName As String = Diagnostics.EventLog.LogNameFromSourceName(ソース名, "")
▼結果
"パラメータ machineName の値 が無効です。"のエラーが発生する。
▼対処
パラメータmachineNameの値を""から"."にすると問題ない。
Diagnostics.EventLog.WriteEntry(pSource, pExp, pType, pEventID, pCategory, pData)
パラメータ
pSource:ソース項目。(省略可能)
pExp:説明項目。イベントログに書き込む文字列。
pType:種類項目。EventLogEntryType値。(省略可能)
pEventID:イベントID項目。(省略可能)
pCategory:分類項目。(省略可能)
pData:データ項目。バイナリデータを保持するバイト配列。(省略可能)
▼EventLogEntryType値
メンバ名:説明
Error:エラー。重大な問題を示す。通常は、機能またはデータの損失です。
FailureAudit:監査エラー。ファイルを開けなかった場合など。セキュリティイベント。
Information:情報。有効で成功した操作を示します。
SuccessAudit:成功した監査。ログオンの成功した場合など。セキュリティイベント。
Warning:警告。緊急を要する問題ではないが、今後問題の原因となりうることを示す。
■イベントログを読込む
Dim oLogs() As System.Diagnostics.EventLog
' イベントログ配列を読込む
oLogs = Diagnostics.EventLog.GetEventLogs()
Dim oLog As Diagnostics.EventLog
For Each oLog In oLogs
Dim oEntry As Diagnostics.EventLogEntry
For Each oEntry In oLog.Entries
Next
Next
oLog.Logの種類
"Application"
"Security"
"System"
■イベントログを削除
' ソース名
Dim pSource As String
If (Diagnostics.EventLog.SourceExists(pSource) = True) Then
' ログ名取得
Dim oLogName As String = Diagnostics.EventLog.LogNameFromSourceName(pSource, ".")
Diagnostics.EventLog.DeleteEventSource(pSource, "")
Diagnostics.EventLog.Delete(oLogName, "")
End If
※エラー
Dim oLogName As String = Diagnostics.EventLog.LogNameFromSourceName(ソース名, "")
▼結果
"パラメータ machineName の値 が無効です。"のエラーが発生する。
▼対処
パラメータmachineNameの値を""から"."にすると問題ない。
XLsoft エクセルソフト
XLsoft エクセルソフト : 開発ツール・ソフトウェア 海外製品開発/業務支援
エクセルソフトはヘルプ作成ツール、ドライバ開発ツール、インターネット ショップ作成ツールの販売と海外製品開発、業務支援を承ります。
http://www.xlsoft.com/jp/index.html
エクセルソフトはヘルプ作成ツール、ドライバ開発ツール、インターネット ショップ作成ツールの販売と海外製品開発、業務支援を承ります。
http://www.xlsoft.com/jp/index.html
[システム起動時に登録されるアプリケーションログについて]
http://www.express.nec.co.jp/usersguide/110rd1_2/SG_ES_SA/page08.htm
マイクロソフトサポート技術情報 - 文書番号:267831
パフォーマンス カウンタをロードするときにイベントID 2003の警告メッセージがログに記録される
http://support.microsoft.com/default.aspx?scid=kb;ja;267831
マイクロソフトサポート技術情報 - 文書番号:267831
パフォーマンス カウンタをロードするときにイベントID 2003の警告メッセージがログに記録される
http://support.microsoft.com/default.aspx?scid=kb;ja;267831
shareEDGE プロジェクト
【shareEDGE プロジェクト - ソフトウェア ダウンロード】
shareEDGE'プロジェクトとは、優れたシェアウェアをより多くのユーザに紹介すること、優れたシェアウェアを育てること、優れた製品を開発する技量を持ったソフトウェア ベンダや個人をサポートすることを目的としたプロジェクトです。shareEDGEプロジェクトは、nextEDGE Technologyにより運営されています。
http://www.shareedge.com/modules/shareware/
shareEDGE'プロジェクトとは、優れたシェアウェアをより多くのユーザに紹介すること、優れたシェアウェアを育てること、優れた製品を開発する技量を持ったソフトウェア ベンダや個人をサポートすることを目的としたプロジェクトです。shareEDGEプロジェクトは、nextEDGE Technologyにより運営されています。
http://www.shareedge.com/modules/shareware/
水曜日, 6月 15, 2005
[VB.NET]FileOpen関数
Public Sub FileOpen( _
ByVal FileNumber As Integer, _
ByVal FileName As String, _
ByVal Mode As OpenMode, _
Optional ByVal Access As OpenAccess = OpenAccess.Default, _
Optional ByVal Share As OpenShare = OpenShare.Default, _
Optional ByVal RecordLength As Integer = -1 _
)
■OpenMode
Append:既存ファイルの後にデータを追加書込みする。
Binary:バイナリファイルモードで開く。
Input:既存ファイルからデータを読込む。
Output:新規ファイルを作成し、データを書込む。
Random:ランダムファイルモードで開く。
■OpenAccess
Default:読込み/書込み
Read:読込み専用
ReadWrite:読込み/書込み両用
ReadWrite:書込み専用
ByVal FileNumber As Integer, _
ByVal FileName As String, _
ByVal Mode As OpenMode, _
Optional ByVal Access As OpenAccess = OpenAccess.Default, _
Optional ByVal Share As OpenShare = OpenShare.Default, _
Optional ByVal RecordLength As Integer = -1 _
)
■OpenMode
Append:既存ファイルの後にデータを追加書込みする。
Binary:バイナリファイルモードで開く。
Input:既存ファイルからデータを読込む。
Output:新規ファイルを作成し、データを書込む。
Random:ランダムファイルモードで開く。
■OpenAccess
Default:読込み/書込み
Read:読込み専用
ReadWrite:読込み/書込み両用
ReadWrite:書込み専用
火曜日, 6月 14, 2005
土曜日, 6月 11, 2005
[ORACLE]SPOOL・CONNECT・FOR
■出力情報をファイルに保存 (SQL*Plus の内容をテキキストファイルに書く)
SPO[OL] [ファイル名[.ext] | OFF | OUT]
SPOOL ファイル名
...
...
SPOOL OFF;
■Oracleと接続
CONN[ECT] [{logon|/} [AS {SYSOPER|SYSDBA}]]
where logon has the following syntax:
username[/password][@connect_identifier]
CONNECT ユーザー名/パスワード @ホスト文字列
■FORループ
何回ループさせるかがあらかじめ決まっているときに使用する。
FOR カウンタ名 IN 最小値 .. 最大値 LOOP
~~~~~~~~~~① ~~~~~~~~~~~~~~~~②
処理;
END LOOP;
・①カウンタ名は、FOR文の中でのみ参照可能。省略可能。
・②カウンタを減らしていきたい時は、REVERSE 最小値..最大値 LOOPとする。
■参考ページ
【PL/SQL】
http://web1.aaacafe.ne.jp/~imajun/ora/plsql.html
【バッチファイル入門 メニュー】
http://www25.cds.ne.jp/~kamiken/bach/bach.html
【バッチで時刻関係の操作】
http://homepage1.nifty.com/jak/batch/time.html
【Windowsコマンドキーワード:Windowsコマンド集/日経BP社】
http://itpro.nikkeibp.co.jp/free/NT/WinKeyWord/20040805/1/
SPO[OL] [ファイル名[.ext] | OFF | OUT]
SPOOL ファイル名
...
...
SPOOL OFF;
■Oracleと接続
CONN[ECT] [{logon|/} [AS {SYSOPER|SYSDBA}]]
where logon has the following syntax:
username[/password][@connect_identifier]
CONNECT ユーザー名/パスワード @ホスト文字列
■FORループ
何回ループさせるかがあらかじめ決まっているときに使用する。
FOR カウンタ名 IN 最小値 .. 最大値 LOOP
~~~~~~~~~~① ~~~~~~~~~~~~~~~~②
処理;
END LOOP;
・①カウンタ名は、FOR文の中でのみ参照可能。省略可能。
・②カウンタを減らしていきたい時は、REVERSE 最小値..最大値 LOOPとする。
■参考ページ
【PL/SQL】
http://web1.aaacafe.ne.jp/~imajun/ora/plsql.html
【バッチファイル入門 メニュー】
http://www25.cds.ne.jp/~kamiken/bach/bach.html
【バッチで時刻関係の操作】
http://homepage1.nifty.com/jak/batch/time.html
【Windowsコマンドキーワード:Windowsコマンド集/日経BP社】
http://itpro.nikkeibp.co.jp/free/NT/WinKeyWord/20040805/1/
PAPA'n VB (ぱぱんぶぃびぃ) - HOME
【PAPA'n VB (ぱぱんぶぃびぃ) - HOME】
VB.NET,VB6,VBAのサンプルやTIPS、フリーコンポーネントを公開しています。
http://www.mitene.or.jp/~sugisita/index.html
【PAPA'n VB (ぱぱんぶぃびぃ) - 資料:VB関数と.NET Frameworkの対応表】
http://www.sugi-family.net/papanvb/vbnet_lang.html
VB.NET,VB6,VBAのサンプルやTIPS、フリーコンポーネントを公開しています。
http://www.mitene.or.jp/~sugisita/index.html
【PAPA'n VB (ぱぱんぶぃびぃ) - 資料:VB関数と.NET Frameworkの対応表】
http://www.sugi-family.net/papanvb/vbnet_lang.html
[VBA]DateSerial関数
■DateSerial関数
指定した年、月、日に対応する内部処理形式が日付型 (Date) の
Variant型 (バリアント型) の値を返す。
日付型 (Date) のVariant型 (バリアント型) の値 = DateSerial(年, 月, 日)
Dim varDate As Variant
varDate = DateSerial(1970, 1, 1)
■通算秒を求める
▼[VBA]
Dim lngDate As Long
Dim wNow As Date
wNow = "2005/06/11"
lngDate = DateDiff("s", #1/1/1970#, wNow) - 32400
Debug.Print lngDate
lngDate = CLng((wNow - DateSerial(1970, 1, 1)) * 86400 - 32400)
Debug.Print lngDate
▼[VB.NET]
' 名前空間のインポート
Imports Microsoft.VisualBasic.DateAndTime
Dim wNow As System.DateTime = "2005/06/11"
Dim lngDate As Long
lngDate = DateDiff("s", #1/1/1970#, wNow) - 32400
Debug.Write(lngDate)
lngDate = DateDiff("d", #1/1/1970#, wNow) * 86400 - 32400
Debug.Write(lngDate)
■通算秒をyyyy/MM/dd hh:mm:ssに変換する
[VB.NET]
' 名前空間のインポート
Imports Microsoft.VisualBasic.DateAndTime
Dim lngDate As Long = 1118415600
lngDate = lngDate + 32400
Dim oDate As Date = DateAdd("s", lngDate, "#1970/01/01#")
Debug.Write(lngDate)
指定した年、月、日に対応する内部処理形式が日付型 (Date) の
Variant型 (バリアント型) の値を返す。
日付型 (Date) のVariant型 (バリアント型) の値 = DateSerial(年, 月, 日)
Dim varDate As Variant
varDate = DateSerial(1970, 1, 1)
■通算秒を求める
▼[VBA]
Dim lngDate As Long
Dim wNow As Date
wNow = "2005/06/11"
lngDate = DateDiff("s", #1/1/1970#, wNow) - 32400
Debug.Print lngDate
lngDate = CLng((wNow - DateSerial(1970, 1, 1)) * 86400 - 32400)
Debug.Print lngDate
▼[VB.NET]
' 名前空間のインポート
Imports Microsoft.VisualBasic.DateAndTime
Dim wNow As System.DateTime = "2005/06/11"
Dim lngDate As Long
lngDate = DateDiff("s", #1/1/1970#, wNow) - 32400
Debug.Write(lngDate)
lngDate = DateDiff("d", #1/1/1970#, wNow) * 86400 - 32400
Debug.Write(lngDate)
■通算秒をyyyy/MM/dd hh:mm:ssに変換する
[VB.NET]
' 名前空間のインポート
Imports Microsoft.VisualBasic.DateAndTime
Dim lngDate As Long = 1118415600
lngDate = lngDate + 32400
Dim oDate As Date = DateAdd("s", lngDate, "#1970/01/01#")
Debug.Write(lngDate)
金曜日, 6月 10, 2005
[WindowsNT]ツール
【DiCE DynamicDNS Client (自宅でインターネットサーバー)】
http://www.hi-ho.ne.jp/yoshihiro_e/dice/index.html
【ZiVE】
http://www.zive.org/
【オープンテクノロジーズ プロダクト・マーケティング部】Post.Office 3.1
http://product.opentech.co.jp/
http://www.hi-ho.ne.jp/yoshihiro_e/dice/index.html
【ZiVE】
http://www.zive.org/
【オープンテクノロジーズ プロダクト・マーケティング部】Post.Office 3.1
http://product.opentech.co.jp/
木曜日, 6月 09, 2005
[VB.NET]Dir関数
取得ファイル名=Dir(パス,属性)
属性一覧
FileAttribute.Archive:前回のバックアップ以降に変更されたファイル
FileAttribute.Directory:フォルダ
FileAttribute.Hidden:隠しファイル
FileAttribute.Normal:通常ファイル
FileAttribute.ReadOnly:読取専用ファイル
FileAttribute.System:システムファイル
FileAttribute.Volume:ボリュームラベル
属性一覧
FileAttribute.Archive:前回のバックアップ以降に変更されたファイル
FileAttribute.Directory:フォルダ
FileAttribute.Hidden:隠しファイル
FileAttribute.Normal:通常ファイル
FileAttribute.ReadOnly:読取専用ファイル
FileAttribute.System:システムファイル
FileAttribute.Volume:ボリュームラベル
金曜日, 6月 03, 2005
WinAPI Database for VB Programmer|WindowsAPIの解説 1600以上|
http://www.winapi-database.com/
WIN32_FIND_DATA構造体はFindFirstFile()かFindNextFile()で見つけたファイルの詳細が記述される構造体です。
--------------------------------------------------------------------------------
typedef struct _WIN32_FIND_DATA { // wfd
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwReserved0;
DWORD dwReserved1;
TCHAR cFileName[ MAX_PATH ];
TCHAR cAlternateFileName[ 14 ];
} WIN32_FIND_DATA;
--------------------------------------------------------------------------------
・メンバ
dwFileAttributes
検索されたファイルの属性で、これは次の定数の組み合わせになります。
FILE_ATTRIBUTE_ARCHIVE
アーカイブ属性を示します。これはファイルのバックアップなどのマークに使用されます。
FILE_ATTRIBUTE_COMPRESS
圧縮属性です。このフラグがついているファイルは圧縮されています。このフラグがディレクトリについている場合は、そのディレクトリに新しく作成されるファイルも圧縮属性となります。
FILE_ATTRIBUTE_DIRECTORY
ファイルはディレクトリです。
FILE_ATTRIBUTE_DIDDEN
ファイルは隠し属性です。通常のディレクトリリストでは表示されません。
FILE_ATTRIBUTE_NORMAL
ファイルには、他の一切の属性がありません。この属性は単独で使用された時だけ有効です。
FILE_ATTRIBUTE_OFFLINE
ファイルのデーターは現在有効ではありません。ファイルはオフライン機器に移動されています。
FILE_ATTRIBUTE_READONLY
ファイルは読み出し専用です。
FILE_ATTRIBUTE_SYSTEM
ファイルはオペレーティングシステムによって使われます。
FILE_ATTRIBUTE_TEMPORARY
ファイルは一時的な記憶領域です。書き込む事は出来ますが、やがて削除されます。
ftCreationTime
ファイルが作成された時間です。FILETIME構造体の二つのメンバが共に0の場合、ファイルシステムはこの時間フィールドをサポートしていない事を示しています。
ftLastAccessTime
最後にファイルへアクセスした時間です。FILETIME構造体の二つのメンバが共に0の場合、ファイルシステムはこの時間フィールドをサポートしていない事を示しています。
ftLastWriteTime
最後にファイルに書き込んだ時間です。FILETIME構造体の二つのメンバが共に0の場合、ファイルシステムはこの時間フィールドをサポートしていない事を示しています。
nFileSizeHigh
ファイルのサイズの上位32ビットです。
nFileSizeLow
ファイルのサイズの下位32ビットです。
dwReserved0
将来のために予約されています。
dwReserved1
将来のために予約されています。
cFileName
ファイル名を示す、ゼロ終了文字列です。
cAlternateFileName
ファイルの代替名をを示すゼロ終了文字列です。代替名というのは、古い8.3形式のファイル名の事を意味します。
WIN32_FIND_DATA構造体はFindFirstFile()かFindNextFile()で見つけたファイルの詳細が記述される構造体です。
--------------------------------------------------------------------------------
typedef struct _WIN32_FIND_DATA { // wfd
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwReserved0;
DWORD dwReserved1;
TCHAR cFileName[ MAX_PATH ];
TCHAR cAlternateFileName[ 14 ];
} WIN32_FIND_DATA;
--------------------------------------------------------------------------------
・メンバ
dwFileAttributes
検索されたファイルの属性で、これは次の定数の組み合わせになります。
FILE_ATTRIBUTE_ARCHIVE
アーカイブ属性を示します。これはファイルのバックアップなどのマークに使用されます。
FILE_ATTRIBUTE_COMPRESS
圧縮属性です。このフラグがついているファイルは圧縮されています。このフラグがディレクトリについている場合は、そのディレクトリに新しく作成されるファイルも圧縮属性となります。
FILE_ATTRIBUTE_DIRECTORY
ファイルはディレクトリです。
FILE_ATTRIBUTE_DIDDEN
ファイルは隠し属性です。通常のディレクトリリストでは表示されません。
FILE_ATTRIBUTE_NORMAL
ファイルには、他の一切の属性がありません。この属性は単独で使用された時だけ有効です。
FILE_ATTRIBUTE_OFFLINE
ファイルのデーターは現在有効ではありません。ファイルはオフライン機器に移動されています。
FILE_ATTRIBUTE_READONLY
ファイルは読み出し専用です。
FILE_ATTRIBUTE_SYSTEM
ファイルはオペレーティングシステムによって使われます。
FILE_ATTRIBUTE_TEMPORARY
ファイルは一時的な記憶領域です。書き込む事は出来ますが、やがて削除されます。
ftCreationTime
ファイルが作成された時間です。FILETIME構造体の二つのメンバが共に0の場合、ファイルシステムはこの時間フィールドをサポートしていない事を示しています。
ftLastAccessTime
最後にファイルへアクセスした時間です。FILETIME構造体の二つのメンバが共に0の場合、ファイルシステムはこの時間フィールドをサポートしていない事を示しています。
ftLastWriteTime
最後にファイルに書き込んだ時間です。FILETIME構造体の二つのメンバが共に0の場合、ファイルシステムはこの時間フィールドをサポートしていない事を示しています。
nFileSizeHigh
ファイルのサイズの上位32ビットです。
nFileSizeLow
ファイルのサイズの下位32ビットです。
dwReserved0
将来のために予約されています。
dwReserved1
将来のために予約されています。
cFileName
ファイル名を示す、ゼロ終了文字列です。
cAlternateFileName
ファイルの代替名をを示すゼロ終了文字列です。代替名というのは、古い8.3形式のファイル名の事を意味します。
Tips箪笥
http://www.geocities.co.jp/SiliconValley/4805/index.html
●Visual Basic Tips
Visual BasicのTipsです。(120)
●VBA Tips
VBAのTipsです。Excel95が主です。(35)
●JavaScript Tips
JavaScriptのTipsです。(28)
●C++Builder Tips
Borland C++BuilderのTipsです。(85)
●viの操作
viエディタのリファレンス
http://www.it7.co.jp/index.html
http://www.microlab.jp/
http://www.xlsoft.com/jp/products/RE/index.html
http://www.keyman.or.jp/
●Visual Basic Tips
Visual BasicのTipsです。(120)
●VBA Tips
VBAのTipsです。Excel95が主です。(35)
●JavaScript Tips
JavaScriptのTipsです。(28)
●C++Builder Tips
Borland C++BuilderのTipsです。(85)
●viの操作
viエディタのリファレンス
http://www.it7.co.jp/index.html
http://www.microlab.jp/
http://www.xlsoft.com/jp/products/RE/index.html
http://www.keyman.or.jp/
火曜日, 5月 31, 2005
[EXCEL]フォント色の設定
http://hp.vector.co.jp/authors/VA006682/vbaref/vbaref4.htm
■疑問点
シートの保護と解除
■解決策
・シートの保護
Excel2003
Excel.Application.ActiveSheet.Protect(Contents:=True, UserInterfaceOnly:=True, AllowFormattingCells:=True)
Excel2000
Excel.Application.ActiveSheet.Protect(DrawingObjects:=True, Contents:=True, Scenarios:=True)
・シートの解除
Excel.Application.ActiveSheet.Unprotect()
■疑問点
シートの保護と解除
■解決策
・シートの保護
Excel2003
Excel.Application.ActiveSheet.Protect(Contents:=True, UserInterfaceOnly:=True, AllowFormattingCells:=True)
Excel2000
Excel.Application.ActiveSheet.Protect(DrawingObjects:=True, Contents:=True, Scenarios:=True)
・シートの解除
Excel.Application.ActiveSheet.Unprotect()
日曜日, 5月 29, 2005
[EXCEL]FileFormatプロパティの定数と値
http://www.asahi-net.or.jp/~ZN3Y-NGI/YNxv202_3-3tbl.html
ActiveWorkbook.SaveAs FileFormatプロパティの定数と値
定数:値:内容
xlExcel5:39:Excel5.0/95ブック
xlExcel7:39:Excel5.0/95ブック
xlExcel9795:43:Excel97-2000および5.0/95ブック
xlWorkbookNormal:-4143:Excelブック
Excel.XlFileFormat.xlExcel9795
http://www2.moug.net/cgi-bin/technic.cgi?exvba+TI15010081
確認メッセージを非表示にする
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs FileFormatプロパティの定数と値
定数:値:内容
xlExcel5:39:Excel5.0/95ブック
xlExcel7:39:Excel5.0/95ブック
xlExcel9795:43:Excel97-2000および5.0/95ブック
xlWorkbookNormal:-4143:Excelブック
Excel.XlFileFormat.xlExcel9795
http://www2.moug.net/cgi-bin/technic.cgi?exvba+TI15010081
確認メッセージを非表示にする
Application.DisplayAlerts = False
土曜日, 5月 28, 2005
[VB.NET]日付
■現在日付
年:Now.Year
月:Now.Month
日:Now.Day
年:Year(Now)
月:Month(Now)
日:DateAndTime.Day(Now)
■DateDiff関数
日数を求めるとき、時間まで考慮しないとVB6.0のときのような結果が得られない。
Dim wDate1 as Date
Dim wDate2 as Date
Dim wDays as Integer
wDays = DateDiff(DateInterval.Day, CDate(Format(wDate1, "yyyy/MM/dd 00:00:00")), CDate(Format(wDate2, "yyyy/MM/dd 00:00:00")))
年:Now.Year
月:Now.Month
日:Now.Day
年:Year(Now)
月:Month(Now)
日:DateAndTime.Day(Now)
■DateDiff関数
日数を求めるとき、時間まで考慮しないとVB6.0のときのような結果が得られない。
Dim wDate1 as Date
Dim wDate2 as Date
Dim wDays as Integer
wDays = DateDiff(DateInterval.Day, CDate(Format(wDate1, "yyyy/MM/dd 00:00:00")), CDate(Format(wDate2, "yyyy/MM/dd 00:00:00")))
金曜日, 5月 27, 2005
マウスカーソル
' 元のWaitカーソルを保持
Dim preCursor As Cursor = Cursor.Current
' カーソルを待機カーソルに変更
Cursor.Current = Cursors.WaitCursor
' 少し時間のかかる処理
System.Threading.Thread.Sleep(5000)
' カーソルを元に戻す
Cursor.Current = preCursor
Dim preCursor As Cursor = Cursor.Current
' カーソルを待機カーソルに変更
Cursor.Current = Cursors.WaitCursor
' 少し時間のかかる処理
System.Threading.Thread.Sleep(5000)
' カーソルを元に戻す
Cursor.Current = preCursor
EXEの起動
Shell("notepad.exe", AppWinStyle.NormalFocus, True)
列挙値 説明
AppWinStyle.Hide ウィンドウはフォーカスを持ち、非表示にされます。
AppWinStyle.NormalFocus ウィンドウはフォーカスを持ち、最新のサイズと位置で表示されます。
AppWinStyle.MinimizedFocus ウィンドウはフォーカスを持ち、最小化表示されます。
AppWinStyle.MaximizedFocus ウィンドウはフォーカスを持ち、最大化表示されます。
AppWinStyle.NormalNoFocus ウィンドウは最後にウィンドウを閉じたときのサイズと位置に設定されます。現在アクティブなウィンドウが、フォーカスを保持し続けます。
AppWinStyle.MinimizedNoFocus ウィンドウは最小化表示されています。現在アクティブなウィンドウが、フォーカスを保持し続けます。
列挙値 説明
AppWinStyle.Hide ウィンドウはフォーカスを持ち、非表示にされます。
AppWinStyle.NormalFocus ウィンドウはフォーカスを持ち、最新のサイズと位置で表示されます。
AppWinStyle.MinimizedFocus ウィンドウはフォーカスを持ち、最小化表示されます。
AppWinStyle.MaximizedFocus ウィンドウはフォーカスを持ち、最大化表示されます。
AppWinStyle.NormalNoFocus ウィンドウは最後にウィンドウを閉じたときのサイズと位置に設定されます。現在アクティブなウィンドウが、フォーカスを保持し続けます。
AppWinStyle.MinimizedNoFocus ウィンドウは最小化表示されています。現在アクティブなウィンドウが、フォーカスを保持し続けます。
木曜日, 5月 26, 2005
プログラムでの名前の付け方をどうするか?
■略称名一覧
FORM:frm
BUTTON:btn
CHECKBOX:chb,ckb
FILE:fil
HIDDEN:hid
IMAGE:img
PASSWORD:pas,pws
RADIO:rdo
RESET:res
SUBMIT:sub
TEXT:txt
SELECT:sel
TABLE:tbl
FORM:frm
BUTTON:btn
CHECKBOX:chb,ckb
FILE:fil
HIDDEN:hid
IMAGE:img
PASSWORD:pas,pws
RADIO:rdo
RESET:res
SUBMIT:sub
TEXT:txt
SELECT:sel
TABLE:tbl
水曜日, 5月 25, 2005
Visual Basic 中学校
http://homepage1.nifty.com/rucio/main/main.htm
Private Declare Function NetScheduleJobAdd Lib "netapi32.dll" (ByVal Servername As String, Buffer As Any, JobID As Long) As Long
Private Type AT_INFO
JobTime As Long
DaysOfMonth As Long
DaysOfWeek As Byte
Flags As Byte
Dummy As Integer
Command As String
End Type
Private Function AddTask(TaskDate As Integer, TaskTime As String, TaskCommand As String) As Boolean
Dim JobInformation As AT_INFO
Dim Ret As Long
Dim JobID As Long
With JobInformation
.JobTime = (Hour(TaskTime) * 3600 + Minute(TaskTime) * 60) * 1000 '時刻
.DaysOfMonth = .DaysOfMonth Or 2 ^ (TaskDate - 1) '日付
.Command = StrConv(TaskCommand, vbUnicode) 'コマンド
End With
Ret = NetScheduleJobAdd("", JobInformation, JobID)
AddTask = Ret = 0
End Function
Private Sub Command1_Click()
Dim Ret As Long
Ret = AddTask(21, "13:20", "C:\Windows\Notepad.exe")
MsgBox IIf(Ret, "成功", "失敗") & "しました。"
End Sub
Private Declare Function NetScheduleJobAdd Lib "netapi32.dll" (ByVal Servername As String, Buffer As Any, JobID As Long) As Long
Private Type AT_INFO
JobTime As Long
DaysOfMonth As Long
DaysOfWeek As Byte
Flags As Byte
Dummy As Integer
Command As String
End Type
Private Function AddTask(TaskDate As Integer, TaskTime As String, TaskCommand As String) As Boolean
Dim JobInformation As AT_INFO
Dim Ret As Long
Dim JobID As Long
With JobInformation
.JobTime = (Hour(TaskTime) * 3600 + Minute(TaskTime) * 60) * 1000 '時刻
.DaysOfMonth = .DaysOfMonth Or 2 ^ (TaskDate - 1) '日付
.Command = StrConv(TaskCommand, vbUnicode) 'コマンド
End With
Ret = NetScheduleJobAdd("", JobInformation, JobID)
AddTask = Ret = 0
End Function
Private Sub Command1_Click()
Dim Ret As Long
Ret = AddTask(21, "13:20", "C:\Windows\Notepad.exe")
MsgBox IIf(Ret, "成功", "失敗") & "しました。"
End Sub
Word,Excel,PowerPointの技--Be Cool Users
http://kokoro.kir.jp/index.html
■疑問点
Excelで曜日を表示したい。
■解決策
「セルの書式設定」→「表示形式」→[種類]に入力する。
「aaa」と入力すると、「日」と表示される。
「aaaa」と入力すると、「日曜日」と表示される。
■疑問点
Excelで曜日を表示したい。
■解決策
「セルの書式設定」→「表示形式」→[種類]に入力する。
「aaa」と入力すると、「日」と表示される。
「aaaa」と入力すると、「日曜日」と表示される。
日曜日, 5月 22, 2005
土曜日, 5月 14, 2005
Viewer
ドキュメントなどを見る為のソフト(Viewer)の紹介です。
フリーのViewerが各会社でダウンロード できるようになっているので
そのリンクを集めて見ました。
Microsoft Excel Viewer 97
http://www.microsoft.com/downloads/details.aspx?FamilyID=4eb83149-91da-4110-8595-4a960d3e1c7c&DisplayLang=ja
Excel Viewer 2003
http://www.microsoft.com/downloads/details.aspx?FamilyID=c8378bf4-996c-4569-b547-75edbd03aaf0&DisplayLang=ja
Word Viewer 97
http://www.microsoft.com/downloads/details.aspx?FamilyID=9bbb9e60-e4f3-436d-a5a7-da0e5431e5c1&DisplayLang=ja
Word Viewer 2003
http://www.microsoft.com/downloads/details.aspx?FamilyID=95e24c87-8732-48d5-8689-ab826e7b8fdf&DisplayLang=ja
Visio Viewer 2002
http://www.microsoft.com/downloads/details.aspx?FamilyID=8fad9237-c0a7-4b80-a5df-46ce54dad2df&DisplayLang=ja
Visio Viewer 2003
http://www.microsoft.com/downloads/details.aspx?FamilyID=3fb3bd5c-fed1-46cf-bd53-da23635ab2df&DisplayLang=ja
PowerPoint Viewer 95
http://www.microsoft.com/downloads/details.aspx?FamilyID=20d0d555-0c94-4cf3-a3e3-ccc05f955c84&DisplayLang=ja
PowerPoint Viewer 2003
http://www.microsoft.com/downloads/details.aspx?FamilyID=428d5727-43ab-4f24-90b7-a94784af71a4&DisplayLang=ja
一太郎ビューア
https://www.ichitaro.com/viewer/download.html
OASYS Viewer
http://software.fujitsu.com/jp/oasys/DOWNLOAD/VIEWER/page4.html
■関連サイト
【Visio2000を使用して...】
http://www.hatena.ne.jp/1082010695
フリーのViewerが各会社でダウンロード できるようになっているので
そのリンクを集めて見ました。
Microsoft Excel Viewer 97
http://www.microsoft.com/downloads/details.aspx?FamilyID=4eb83149-91da-4110-8595-4a960d3e1c7c&DisplayLang=ja
Excel Viewer 2003
http://www.microsoft.com/downloads/details.aspx?FamilyID=c8378bf4-996c-4569-b547-75edbd03aaf0&DisplayLang=ja
Word Viewer 97
http://www.microsoft.com/downloads/details.aspx?FamilyID=9bbb9e60-e4f3-436d-a5a7-da0e5431e5c1&DisplayLang=ja
Word Viewer 2003
http://www.microsoft.com/downloads/details.aspx?FamilyID=95e24c87-8732-48d5-8689-ab826e7b8fdf&DisplayLang=ja
Visio Viewer 2002
http://www.microsoft.com/downloads/details.aspx?FamilyID=8fad9237-c0a7-4b80-a5df-46ce54dad2df&DisplayLang=ja
Visio Viewer 2003
http://www.microsoft.com/downloads/details.aspx?FamilyID=3fb3bd5c-fed1-46cf-bd53-da23635ab2df&DisplayLang=ja
PowerPoint Viewer 95
http://www.microsoft.com/downloads/details.aspx?FamilyID=20d0d555-0c94-4cf3-a3e3-ccc05f955c84&DisplayLang=ja
PowerPoint Viewer 2003
http://www.microsoft.com/downloads/details.aspx?FamilyID=428d5727-43ab-4f24-90b7-a94784af71a4&DisplayLang=ja
一太郎ビューア
https://www.ichitaro.com/viewer/download.html
OASYS Viewer
http://software.fujitsu.com/jp/oasys/DOWNLOAD/VIEWER/page4.html
■関連サイト
【Visio2000を使用して...】
http://www.hatena.ne.jp/1082010695
登録:
投稿 (Atom)