テキスト広告:プレミアムプランが最初の3か月月額99円!【2025年7月31日まで】

AdMax右サイドバー広告

月曜日, 12月 26, 2005

[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

月曜日, 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

水曜日, 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

お役立ちリンク集

【Programming Library - VB/VC/Delphi総合情報ページ】
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

火曜日, 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/

月曜日, 11月 28, 2005

木曜日, 11月 17, 2005

Google Analytics

■Webにスプレッドシートを埋め込むことができる?
【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")

水曜日, 11月 09, 2005

[VB.NET]Excelの終了処理

■Excelを終了させる時の処理
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

月曜日, 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

火曜日, 9月 20, 2005

[VB2005]TabControl

■Tabのサイズを変更したいとき
SizeModeプロパティをFixedを指定し、ItemSizeプロパティでサイズを変更する。

火曜日, 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

木曜日, 9月 08, 2005

[VB2005]ContextMenuStrip

■ToolStripSeparatorのWidthプロパティを設定はできない?

■チェックが表示されるエリアを非表示にする。
ShowCheckMarginとShowImageMarginプロパティをFalseにする。

火曜日, 8月 30, 2005

[VB.NET]ガベージコレクション

■ガベージコレクションを明示的に行う。
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

火曜日, 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

日曜日, 8月 14, 2005

[VB2005]GroupBox

■枠表示として使用する。
Me.GroupBox1.Text = ""
Me.GroupBox1.FlatStyle = FlatStyle.System