最近更新したページ
2013-10-20
2013-09-29
2013-09-23
2012-01-07
2011-11-09
2011-10-23
2011-10-09
2011-10-01
2011-09-29
2011-09-03
2011-08-07
2011-08-02
2011-07-29
2011-07-10
2011-05-05
2011-05-04
2011-04-24
2011-04-13
2011-04-05
2011-03-26
2011-02-18
2011-02-15
2010-12-26
2010-12-07
2010-12-05
2010-11-23
2010-09-28
2010-09-23
2010-08-26
2010-08-22
2010-07-16
2010-01-17
2010-01-11
2009-10-04
2009-08-21
2009-08-13
2009-06-18
2009-06-01
2009-04-29
2009-02-16
2009-02-11
2009-02-03
2008-07-22
2008-07-21
2008-07-15
2008-07-14
2008-07-13
2008-07-12
2008-07-08
2008-07-05
2008-06-28
2008-06-17
2008-06-05
2008-06-02
2008-06-01
2008-05-29
2008-05-26
2008-05-21
2008-05-19
2008-05-18
2007-10-31
2007-10-27
2007-09-28
2007-09-23
2007-09-17
2007-09-16
2007-09-14
2007-09-11
2007-06-18
2007-04-15
2006-12-21
2006-11-30
2006-11-22
2006-08-17
2006-03-29
2006-03-28
2006-03-27

VB2005その他

VB2005その他



▲上へ


プログラムからフォーム上のボタンを操作する


メッセージボックスの利用

※たぶんVBAと使い方が同じとおもう。
'x=Msgbox(Prompt,Buttons,Title)
'Prompt以外は省略可。例:Msgbox("メッセージ")
Dim x As Integer
'
x=MsgBox("vbOkonly", vbOKOnly, "ret=1")
x=MsgBox("vbOkCancel", vbOKCancel, "ret=1 or 2")
x=MsgBox("vbAbortRetryIgnore",vbAbortRetryIgnore,"ret=3or2or5")
x=MsgBox("vbYesNoCancel", vbYesNoCancel, "ret=6 or 7 or 2")
x=MsgBox("vbYesNo", vbYesNo, "ret=6 or 7")
x=MsgBox("vbRetryCancel", vbRetryCancel, "ret=4 or 2")
'
x=MsgBox("vbok[OK][キャンセル]", vbOK, "ret=1 or 2")
x=MsgBox("vbcancel[中止][再試行][無視]",vbCancel,"ret=3or4or5")
x=MsgBox("vbabort[はい][いいえ][キャンセル]",vbAbort,"ret=6or7or2")
x=MsgBox("vbretry[はい][いいえ]", vbRetry, "ret=6 or 7")
x=MsgBox("vbignore[再試行][キャンセル]", vbIgnore, "ret=4 or 2")
x=MsgBox("vbyes[はい]", vbYes, "ret=6")
x=MsgBox("vbno[いいえ]", vbNo, "ret=7")
'
x=MsgBox("vbcritical", vbYesNo + vbCritical, "警告")
x=MsgBox("vbQuestion", vbYesNo + vbQuestion, "問い合わせ")
x=MsgBox("vbexclamation", vbYesNo + vbExclamation, "注意")
x=MsgBox("vbinformation", vbYesNo + vbInformation, "情報")
※"ret='戻値'"としてボタン名に対する戻値予測を記述してますが動作確認してません。

■設定値※MsgBox()、MessageBox.Show()混在
メンバ説明
※vb6.0の定数名はvbをメンバ名の前に付加します。例:vbOKOnlyなど
(vb2005相当の定数)
*付きのメンバ名は MessageBox.show() 使用時に MessageBoxButtons.OK などとして利用可。但し、OKCancel と OK では表示ボタンが異なるので注意
ボタンの数と種類(vb2005:MessageBoxButtons)
OKOnly 0 [OK]ボタンを表示:【OK=1】
*OKCancel / *OK
MsgBoxResult.OK
1 [OK] / [キャンセル]ボタン表示 :【OK=1】【Cancel=2】
MassageBox.Show()使用時の OK は、[OK]ボタンのみ表示です。
*AbortRetryIgnore / Cancel
MsgBoxResult.Cancel
2 [中止] / [再試行] / [無視]ボタンを表示 :【Abort=3】【Retry=4】【Ignore=5】
*YesNoCancel / Abort
MsgBoxResult.Abort
3 [はい] / [いいえ] / [キャンセル]ボタンを表示:【Yes=6】【No=7】【Cancel=2】
*YesNo / Retry
MsgBoxResult.Retry
4 [はい] / [いいえ]ボタンを表示 :【Yes=6】【No=7】
*RetryCancel / Ignore
MsgBoxResult.Ignore
5 [再試行] / [キャンセル]ボタンを表示 :【Retry=4】【Cancel=2】
Yes
MsgBoxResult.Yes
6 [はい]ボタンを表示 :【Yes=6】
No
MsgBoxResult.No
7 [いいえ]ボタンを表示 :【No=7】
戻り値:【OK=1】 / 【Cancel=2】 / 【Abort=3】 / 【Retry=4】 / 【Ignore=5】 / 【Yes=6】 / 【No=7】
アイコンスタイルの定義(vb2005:MessageBoxIcon)
*MessageBoxIcon列挙体共通、()内は列挙体専用、+は.NET Compact Framework によるサポート(詳細不明)
Critical
(Error,+Hand,Stop)
16 警告メッセージアイコン表示
*+Question 32 問い合わせメッセージアイコン表示
*+Exclamation
(Warning)
48 注意メッセージアイコン表示
*Information
(+Asterisk)
64 情報メッセージアイコン表示
(+None) - アイコン記号を表示しない
警告:Critical=(×) / 問合:Question=(?) / 注意:Exclamation=(!) / 情報:Information=(i)
使用例:x=msgbox("ファイルを削除しますか?",vbOKCancel + vbQuestion,"ファイルの削除")
既定のボタン(vb2005:MessageBoxDefaultButton)
()内は、MessageBoxDefaultButton 列挙体定数
DefaultButton1
(Button1)
0 第1ボタンが標準
DefaultButton2
(Button2)
256 第2ボタンが標準
DefaultButton3
(Button3)
512 第3ボタンが標準
使用例:x=MsgBox("File Read Error。再試行しますか?",vbAbortRetryIgnore + vbCritical + vbDefaultButton2,"読み込みエラー")
モーダル指定
ApplicationModal 0 操作応答までアプリ実行停止
SystemModal 4096 操作応答まですべてのアプリ中断
前面表示・テキスト表示指定(vb2005:MessageBoxOptions)
MsgBoxSetForeground 65536 最前面表示します
MsgBoxRight 524288 テキストを右寄せ表示
MsgBoxRtlReading 1048576 ヘブライ語やアラビア語システムの右→左表記指定
※MSDNライブラリ(ローカルヘルプ)より抜粋 + 説明内に動作未確認の戻り値を追記

■MsgBox()とMessageBox()
x=MsgBox(Prompt,Buttons,Title)
   ・・・と・・・
x=MessageBox.Show( Message, 
                   Caption,
                   MessageBoxButtons,
                   MessageBoxIcon,
                   MessageBoxDefaultButton,
                   MessageBoxOptions )
※vb2005では新たにMessageBox.Showを使用することが推奨されている。しかし下位互換のMsgBoxも従来通りサポートされているので利用可能。


▲上へ


配置したボタンをプログラムから押下

配置したボタンをプログラムから操作、サブルーチンとして制御する方法
Button.PerformClick()
※フォーム上のオブジェクト呼び出しは、sender As System.Object や e As System.EventArgs といった引数を擬似的に作って渡す事で Call することも可能だが、このように指定すると引数不要ですぐ利用できるので便利。


▲上へ


応答の無い状態を回避する


メッセージ・キューを処理する

ループ処理などの実行時に、フォーム表示の更新や操作不能な状態を簡単に処理する方法。
Application.DoEvents()


▲上へ


追加フォームの表示


追加したフォームを表示させる

メインフォーム(Form1)へ配置したボタン(Button)のクリック(Click)イベントへ、以下のように記述する。
== 定石 ==
Dim nForm2 As New Form2
nForm2.Owner = Me
nForm2.Show()


▲上へ


mdbファイル::レコード操作


「 型 'DBNull' から型 'String' への変換は無効です。 」と表示されるエラー。

※mdbファイルで、追加フィールドのデータ取得時に発生。全データ更新もつらいのでプログラムで逃げる …
== 例 ==
Dim mdbCn As New OleDbConnection( _
    MDB_PROVIDER & "Data Source=" & MDB_DATSOURCE)
Dim SQLCmd As OleDbCommand = mdbCn.CreateCommand
Dim DbAdpter As New OleDbDataAdapter(SQLCmd)
Dim Table As New DataTable

SQLCmd.CommandText = "SELECT N_Field FROM T_Table " & _
                     "WHERE ItemCD='01234' "
DbAdapter.Fill(Table)

If IsDBNull(Table.Row(0)("N_Field")) Then   'DBNull型?
    Table.Row(0)("N_Field") = ""            '空文:""を代入エラー抑止
End If

Dim NewField As String
NewField = Table.Row(0)("N_Field")          '上記処理にてエラー回避

'▼後処理
Table.Dispose()
DbAdapter.Dispose()
SQLCmd.Dispose()
mdbCn.Dispose()
※覚え書き用のメモ書き→不要部分カット→ このコードは動作未確認
※SQL Server,DataGridViewなどでも同じ
※DataSetを利用したプロパティ変更での処理も可能らしい


▲上へ


サブルーチンと関数の定義と利用方法


サブルーチン(メソッド)の追加

戻り値のないイベントプロシージャ以外のプログラム(メソッド)を定義する。

== 定義方法 ==
Private Sub メソッド名( ByVal 引数1 As 変数の型, _
                      ByBal 引数2 As 変数の型 )

  '処理:引数の利用も可。
  '戻り値がないので、処理中の画面表示や大域変数の制御などに利用。
  '引数なしでも定義可能です。

End Sub


関数(ファンクション)の追加

戻り値を1個返すプログラム(メソッド)を定義します。

== 定義方法 ==
Private Function 関数名( ByVal 引数1 As 型, _
                        ByVal 引数2 As 型 ) As 関数の型

  '処理:引数がなくても可。
  '必ず「戻り値」を返すのが関数。「戻り値」がないとエラーとなる。
  Return 戻り値 または、関数名(またはメソッド名言う) = 戻り値

End Function


サブルーチン、関数の呼び出し

定義したメソッドの呼び出しの仕方について。
  • サブルーチンの呼び出し方法
    • 引数がない場合
      • サブルーチン名
      • Call サブルーチン名
      • サブルーチン名() ※注:未確認
    • 引数がある場合
      • サブルーチン名(引数1 , 引数2 , …)
      • Call サブルーチン名(引数1 , 引数2 , …)
  • 関数の呼び出し方法
    • 引数がない場合
      • 関数と同じ型の変数 = 関数名()
    • 引数がある場合
      • 関数と同じ型の変数 = 関数名(引数1 , 引数2 , …)


▲上へ


その他のその他


TextBoxへ出力文字列を追加する

ログ出力や動作確認時のConsole出力の替わりとしてなど…
TextBox1.Multiline=Trueとし、以下のようにすることで表示される。
TextBox1.AppendText(["文字列"/変数] & ["文字列"/変数] & … & vbCrLf)
※VbCrLf、chr(13),chr(10)などを付けることで改行。
※VbTab、出力文字の行頭併せが可能。


Consoleへ出力文字列を表示する

■簡易に出力を確認したい場合などに便利。
例)出力レコード内容を目視チェックする・・・など
Console.WriteLine(["文字列"/変数] & ["文字列"/変数] & … )
※改行コードなど追加する必要はありません。
■改行せずに出力する場合。
Console.Write(["文字列"/変数] & ["文字列"/変数] & … )
※全文改行なしで表示されます。


マルチステートメントの使用

(^_^;)使えるかなぁ〜と思ったら、使えました。
i = 10 : j = 20 : k = 50                  ' … とか …
str_temp = "マルチステートメントは、コロンで区切るとつかえます。"
※使いすぎにはご注意。


ソースコードのアウトライン(指定ソース部分を折りたたむ)

VB2005では、折り畳み可能なXMLコメント(メソッド説明)などがあり重宝しますが、一部のソースを意図的に折り畳むための指定を行う事も可能です。

== 設定方法 ==
#Region "○○○のメソッド:完成済み"
  Private Sub サブルーチン名( )    '完成済み○○○メソッド

    '例えば、完成済みVBソースのデバック時などの
    '「サブルーチン」や「関数」の把握をしたい場合などに
    '折り畳みができるようにしておくと、見やすいと思います。
    
    サブルーチン本文 〜 中略 〜

  End Sub
#End Region
※ただし、メソッド内部などへの指定は不可。

その他記載予定しているもの

書いとかないとわかんなくなるので・・・

  • 外部exeファイルの呼び出し…など


▲上へ


リンク


VisualBasic2005の本

入門向け


入門以上


専門向け(理系・DB・その他)



内部リンク



外部リンク


  • まだありません


▲上へ
2007年10月27日(土) 09:40:49 Modified by cafeboy1




スマートフォン版で見る

×

この広告は60日間更新がないwikiに表示されております。