【目次】VB.NET


- データ型(定数、変数、列挙型、構造体、オブジェクト)
 - 数値型
  ・データ型による計算速度の違い
  ・数値型の演算処理時間について
  ・数値を通貨型の文字列に変更する
  ・基数変換
 - 文字列操作
  ・文字列操作用メソッドと文字列操作用関数
  ・文字列から特定の文字を検索する
  ・特定の文字列で始まっているかどうか確認する
  ・ひらがなをカタカナに変換する
  ・漢字をカタカナに変換する(漢字のフリガナを取得する)
  ・漢字の読み仮名(フリガナ)を列挙する
  ・かな文字の大文字と小文字を変換する
  ・文字列の前後から空白(スペース)を除外する
  ・指定した文字の文字コードを取得する
  ・文字コードの16進ダンプを作成する
  ・指定した文字が数字かどうか判定する(IsDigit, IsNumber, IsNumeric)
  ・文字列を数値に変換する(TryParse)
  ・StringBuilderの利点
 - 日付処理
  ・日付/時刻の定数を扱う
  ・日付から曜日を取得する
  ・日付の計算
  ・西暦を和暦に変換する
  ・月初日〜月末日を表示する
  ・指定した年月の日数を取得する
  ・データセットで日付項目を使ってデータを抽出する
  ・TimeSpanを使った時間の計算
 - 配列
  ・配列を初期化する
  ・配列を整列する
  ・ReDimとArrayList
  ・連想配列(ハッシュテーブル)
 - 構造体
  ・構造体の項目に別の構造体を利用する
  ・構造体の項目にArrayListを利用する
 - 列挙型
  ・列挙型の値を一覧表示する
 - オブジェクト型
  ・Object型の変数が参照しているデータ型を調べる
  ・指定したクラスのメンバ一覧を取得する
  ・指定したクラスのメソッド一覧を取得する
  ・オブジェクトのデータ型をチェックする
  ・指定したデータ型のプロパティを取得する
 - ジェネリック(.NET Framework 2.0以降)
  ・.NET Framework2.0のジェネリックを理解する
  ・ジェネリックで指定した変数の全ての値を取得する
  ・ジェネリックでキーと値の組合せを利用する(Dictonary)
  ・キューを利用する
  ・スタックを利用する
  ・ジェネリックで指定した型を取得する
 - その他
  ・予約語を変数名として使用する
  ・COMオブジェクトの解放

- 基本構文
 - 条件分岐
  ・複数条件に使用する演算子(And, AndAlso, Or, OrElse)について
 - 関数
  - 関数宣言
   ・引数が可変長の関数を作成する
   ・省略可能な引数を持つ関数を作成する
  - 数学関数
   ・数学関数を利用する
   ・小数部の端数処理
   ・Roundメソッド(四捨五入)について
  - Windows API
   ・Win32 APIの一覧
   ・Windows APIの利用
   ・MarshalAsを利用した属性の適用
   ・Win32APIのエラーコードからメッセージを取得する
   ・APIのエントリポイントを確認する
 - プロンプト/メッセージボックス関連
  - データ入力
   ・ユーザ入力用のプロンプトを表示させる
  - メッセージボックス
   ・チェックボックス付きメッセージボックスを利用する
   ・指定したコンピュータに処理完了通知を表示する
 - アプリケーション構成
  ・アプリケーション構成ファイルを読み込む
 - データ操作
  - ファイル/フォルダ
   ・ファイルを1行ずつ読込む
   ・ファイルの内容を全て読込む
   ・新規のファイルに書込む
   ・既存のファイルに書込む
   ・ファイル/フォルダの有無を確認する
   ・フォルダを作成する
   ・フォルダを削除する
   ・フォルダ内の全ファイルを取得する
   ・特殊なフォルダパス(システムフォルダ等)を取得する
   ・実行中のアプリケーションが保存されているパスを取得する
   ・アプリケーションフォルダにファイルを保存させない方法
  - XML
   ・XMLファイルを読み込む
   ・XMLファイルに書き込む
   ・XMLファイルをデシリアライズする
   ・XMLファイルをデシリアライズする(其の弐)
  - データベース
   - サーバーエクスプローラ
    ・サーバーエクスプローラを使ってDBに接続する
   - SQL Server
    - ADO.NET
     ・SQL Serverに接続する(ADO.NET)
     ・SQLを実行する
     ・SQLに変数を利用する方法
     ・ストアドプロシージャを実行する
     ・SQL Serverのテーブル毎の使用容量を確認する
     ・DataAdapterを利用したデータの取得と値の更新
    - SMO(SQL Serverの管理)
     ・SMOを利用してSQL Serverのサーバ一覧を取得する
     ・SMOを利用してSQL Serverに接続する
     ・SMOを利用してSQLServerのデータベース情報を取得する
     ・SQL Serverの指定したデータベースをバックアップする
     ・SQL Serverの指定したデータベースを復元(リストア)する
     ・SQL Serverの指定したデータベースを復元(リストア)する(其の弐)
     ・SQL Serverの指定したデータベースを復元(リストア)する(其の参)
   - Access
    ・Accessファイルに接続する
    ・パスワード付きのAccessファイルに接続する
   - テキストファイル(CSVファイル含む)
    ・ADO.NETを利用してCSVファイルを読込む
  - LINQ関連
   ・拡張メソッドを利用する
   ・匿名データ型を利用する
   ・LINQPad.net
  - レジストリ
   ・レジストリから値を取得する
   ・指定したレジストリキーの全ての値を取得する
   ・レジストリから指定したキーの全サブキーを取得する
  - 環境変数
   ・環境変数から値を取得する
  - ストリーム
   ・書式指定で標準ストリームに出力する
 - 正規表現
  ・正規表現を使う
  ・正規表現の指定方法
 - スレッド
  ・マルチスレッドを実装する
  ・スレッドからフォームのコントロールを扱う
  ・スレッドで生成した別のクラスからフォームのコントロールを扱う
  ・指定した秒数だけ処理を待機する
 - 印刷関連
  - 印刷対象の描画
   ・PrintDocumentを利用して印刷する
   ・PrintDocumentを利用して文字列を印刷する
   ・PrintDocumentを利用して直線を印刷する
   ・PrintDocumentを利用して四角を印刷する
   ・PrintDocumentを利用して円形(楕円形)を印刷する
   ・PrintDocumentを利用して多角形を印刷する
   ・PrintDocumentを利用して画像を印刷する
  - 印刷設定
   ・印刷ダイアログを表示する
   ・用紙サイズを設定する
   ・印刷する用紙の向きを横向きにする
  - プレビュー
   ・印刷プレビューを表示する
  - 画面のスナップショット
   ・画面のスナップショットを印刷する
   ・画面のスナップショットを印刷する(其の弐)
 - プロセス間通信
  ・リモート処理を利用したプロセス間通信
 - ネットワーク
  ・指定したコンピュータのIPアドレスを取得する
  ・ネットワークドライブの接続/切断を行う
  ・.NETで利用できるエンコード一覧を取得する
  ・指定したURLのHTMLを取得する
  ・WebClientとHTMLDocumentを利用してHTMLを解析する
 - セキュリティ関連
  - アクセス権限
   ・管理者権限の有無を調べる
   ・ファイルのアクセス権限を変更する
   ・フォルダのアクセス権限を変更する
 - 例外処理
  ・例外処理
  ・例外を発生させる
  ・ゼロ除算の回避
 - デバッグ/トレース
  ・デバッグ用コードを記述する
  ・DebugクラスとTraceクラス
  ・デバッグ情報の出力内容をインデントする
  ・デバッグ情報のインデントサイズを指定する
 - イベントログ
  ・ログをイベントログに出力する
 - Windows関連の情報取得
  - システム制御
   ・Windowsのバージョン情報を取得する
   ・製品情報の取得方法
   ・インストール済みアプリケーション一覧を作成する
   ・ごみ箱にファイルを移動する
   ・アプリケーション実行中に休止状態にしない方法
  - WMI
   ・VB.NETでディスク情報を取得する
   ・WMIを利用する【其の壱】
   ・WMIを利用する【其の弐】
   ・WMIクラスのクラス情報を取得する
   ・WMIのパフォーマンスについて
   ・WMIサンプル生成ツール(WMICSO)
   ・厳密型クラスジェネレータ(MgmtclassGen)
   ・MgmtclassGenと同じコードを生成する
   ・MgmtClassGen.exeを利用して作成したクラスの利用方法

- Windowsアプリケーション
 - フォーム
  - プロパティ
    ・フォームの透明度を設定する
  - イベント
   - インスタンスの動的生成
    ・動的にフォームを作成する
   - フォームの初期表示
    ・Shownイベントについて
   - フォームを閉じる
    ・フォームを閉じるかどうか確認する
    ・別のフォームが閉じたことを検知する方法
   - クリック
    ・フォームの外でクリックされたことを認識する
   - フォーカス
    ・Enterキーで次のコントロールにフォーカスを移す
   - ドラッグ&ドロップ
    ・ファイルをドラッグ&ドロップする
  - タスクバー関連
    ・タスクバーにウィンドウのタイトルを表示しない
  - 配置したコントロールの操作
   ・画面を再描画(更新)する
   ・フォームに配置されているコントロールを取得する
   ・フォームに配置したコントロールの値を初期化する
  - フォーム間の操作
   ・親フォームのコントロールを子フォームから操作する
   ・他のフォームに引数を受け渡す方法
   ・他のフォームに引数を受け渡す方法(其の弐)
  - Windowsメッセージ
   ・Windowsメッセージを処理する
   ・フォーム右上に表示される閉じるボタン(x)を無効にする
  - MDI
   ・MDIのアプリケーションを作成する
   ・MDIでサブウィンドウを整列する方法
   ・MDIで親フォームを閉じる場合の注意点
   ・MDIで全ての子フォームを閉じた場合に親フォームのコントロールにフォーカスを移す 
  - Main関数との連携
   ・WindowsアプリでMain関数からフォームを表示する
   ・WindowsアプリでMain関数からフォームを表示する (補足)
   ・Windowsアプリで実行時引数を受け取る
  - アプリケーションコンテキスト(ApplicationContext)関連
   ・全てのフォームが閉じられた場合にアプリケーションを終了する
 - コントロール
  - 共通(イベント・メソッド・プロパティ)
   - イベント
    ・イベントハンドラを追加する
    ・イベントハンドラが割り当てられているイベントにイベントハンドラを追加する
   - プロパティ
    ・フォームに連動して、コントロールのサイズを変更する
  - テキストボックス(TextBox)
   ・TextBoxに32,767文字以上の文字を設定する
   ・フォーカス移動時に入力値の検証を行う(Validatingイベント)
   ・Validatingイベントの注意点
   ・コントロールのIMEモードを設定する
   ・テキストボックスで選択している文字をコピーする
  - マスクテキストボックス(MaskedTextBox)
   ・MaskedTextBoxのフォーマット適用前の値を取得する
  - リッチテキストボックス(RichTextBox)
   ・リッチテキストボックスに指定したファイルの内容を表示する
   ・リッチテキストボックスの内容を指定したファイルに保存する
   ・リッチテキストのフォントが勝手に変更されるのを抑制する
  - ボタン(Button)
   ・キーを押した時にボタンのクリックイベントを発生させる
  - データグリッドビュー(DataGridView)
   ・DataGridViewの行ヘッダに行番号を表示させる
   ・DataGridViewで編集中のセルの背景色と文字色を変更する
   ・DataGridViewのコンボボックスのドロップダウンを1回のクリックで表示させる
   ・DataGridViewで選択した行を取得する
   ・DataGridViewのSelectedRowsを整列する
   ・DataGridViewで列毎にIMEモードを制御する
  - リストビュー(ListView)
   ・リストビューを使用する【其の壱】
   ・リストビューを使用する【其の弐】
  - ツールチップ(ToolTip)
   ・ToolTipでヘルプを表示する
  - カレンダー(Calendar)
   ・カレンダーに表示する月数を設定する
   ・カレンダーコントロールの大きさを変更する
  - プログレスバー(ProgressBar)
   ・プログレスバーを利用する
  - コンテキストメニュー(ContextMenu)
   ・マウスの右クリックでコンテキストメニューを表示する
  - カーソル(Cursor)
   ・表示するカーソルを変更する
  - カラーダイアログ(ColorDialog)
   ・カラーダイアログ(ColorDialog)を利用する
  - 印刷の用紙サイズ(PaperSize)
   ・用紙サイズを設定する
  - PrintForm(Visual Basic 2005 Power Packs 2.0以降)
   ・画面のスナップショットを印刷する
   ・画面のスナップショットを印刷する(其の弐)
  - DataRepeater(Visual Basic 2005 Power Packs 3.0以降)
   ・DataRepeaterコントロールのサンプル
   ・DataRepeaterで新規行を追加する
   ・DataRepeaterで条件を満たす行の文字色を変更する
   ・DataRepeaterで全レコードのデータを処理する
  - 実行時コントロール操作
   ・イベントの発生したコントロール名を取得する
   ・プログラムからボタンをクリックする
   ・実行時にコントロールを追加する方法
  - ユーザ定義(カスタム)コントロール作成関連
   ・プロパティグリッドの設定方法
   ・コントロール配置時に発生するイベント
 - 拡張コントロール
  - Microsoft公式コントロール
   ・Visual Basic 2005 Power Packs 2.0
   ・Visual Basic 2005 Power Packs 3.0
   ・Visual Studio International Pack 1.0 Beta1
  - ユーザ定義(カスタム)コントロール
   ・VB.NETの標準コントロール(PictureBox, ListView)を機能拡張する
   ・TextBoxコントロールを機能拡張する
   ・数値入力用拡張コントロール(Numeric)
   ・拡張コントロール(MaskEdit)のサンプル
   ・フォームの拡張コントロール(BaseForm)
   ・ListBoxコントロールの機能拡張
   ・RichTextBoxコントロールの機能拡張
   ・PaperSizeクラスを拡張する

- コンソールアプリケーション
 ・コンソールの入力値を受け取る
 ・標準出力先を変更する
 ・外部から引数を受け取るプログラムを作成する

- Windowsサービス
 ・サービスの起動タイミング
 ・Windowsサービスを取得する
 ・Windowsサービスの状態を取得する

- デザインパターン
 ・デザインパターンのSingletonを利用する
 ・デザインパターンのSingletonを利用する(其の弐)

- サンプル
 - 参照設定
  ・動的にDLLをロードする
  ・他のプロジェクトのオブジェクトを参照する
 - アプリケーションの起動制御
  ・アプリケーションの多重起動を禁止する
 - 色
  ・RGB関数の戻り値をColor構造体に変換する
 - 圧縮
  ・Zipファイルを扱う

- 他のアプリケーションとの連携
 - プロセス
  ・プログラムから別のアプリケーションを実行する
  ・実行したアプリケーションの終了を待つ
  ・実行したアプリケーションの終了コードを取得する
  ・プロセスの情報を取得する
  ・PDFファイルを開いて表示する
  ・別のアプリケーションでコンソール出力した内容を取得する
  ・StringReaderを利用して文字列を読み込む
 - MS-Office関連
  - 全般
   ・Officeのバージョンに極力依存しないコードの作成
   ・利用するOfficeのバージョンを確認する
   ・COMオブジェクトの解放
  - Excel
   ・Excelファイルを作成する
   ・ExcelのVBAを実行する方法
   ・Excel VBAを実行し、戻り値を受け取る
   ・Excelの印刷ページ数を取得する
   ・既に開いているExcelファイルの情報を取得する
  - Word
   ・ワードのBuiltInDocumentPropertiesを利用する
  - Access
   ・Accessファイルに接続する
   ・パスワード付きのAccessファイルに接続する
 - コマンド関連
  - PowerShell
   ・VB.NETのコードを実行する
   ・PowerShellを実行する(事前準備)
    →GACに登録されているDLLをコピーする
 - Luaスクリプト
  ・VB.NETからLuaスクリプトを実行する

- 外部ライブラリの利用
 - Microsoft Enterprise Library
  - インストール(ダウンロード)
   ・Enterprise Libraryをインストールする
  - Data Access Application Block
   ・Data Access Application Blockを利用する
 - サードパーティ
  - GrapeCity
   - SPREAD for .NET
    - 基本的な制御
     ・R1C1形式でのセル参照
     ・セル値変更時に発生するイベント
     ・コンボボックスセルで変更した値を取得する
     ・セルの斜め罫線を引く方法
     ・選択したセル範囲を取得する
    - ヘッダ関連
     ・スプレッドの行ヘッダーを複数列表示する
     ・スプレッドの行ヘッダーの特定列に値を設定する
    - パフォーマンス改善
     ・スプレッドシートの表示時間を短縮する方法(其の壱)
     ・スプレッドシートの表示時間を短縮する方法(其の弐)
    - 操作性向上
     ・スプレッドシートで選択したセルのデータをクリアする
     ・スプレッドシートで複数の行数を追加する
     ・スプレッドシートで選択した行を削除する
     ・範囲選択(ドラッグ)時にToolTipを表示する
   - InputMan
    ・Dateコントロールに何も入力しなかった場合に空白を表示する方法
 - オープンソースライブラリ
  - グラフ関連
   ・グラフコントロール(ZedGraph)
  - ログ関連
   ・log4netでログ出力(其の壱)
   ・log4netでログ出力(其の弐)
   ・log4netを利用してログ出力する(其の参)
  - API関連
   ・PInvoke.Net
  - テスト関連
   ・NUnit
   ・Test Driven .NET
  - PDF関連
   ・iText.NETを利用してPDFファイルを読み込む
 - Webサービス
  - Amazon Web Service(AWS)
   ・Amazon Web Service(AWS)を利用する

- プログラム言語の変換(以前のバージョン、他のプログラム言語)
 ・VB 2005で作成されたコードをVB.NET 2003に移行する
 ・VB.NET<->C#のコード変換

- リファクタリング
 ・リフクタリングツール(Refactor!)

- コーディング規約
 ・ソースコード分析
 ・FxCopをVisual Studioに統合する

- テストツール
 ・カバレッジツール(PartCover)

- 公開アプリケーション
 - ツール
  ・WMIサンプル生成ツール(WMICSO)
  ・ドキュメント規模計測ツール(SizeCounter)
 - コントロールライブラリ
  ・標準コントロール(PictureBox, ListView)の機能拡張
  ・TextBoxコントロールの機能拡張(MaskEdit)
  ・数値入力用拡張コントロール(Numeric)
  ・フォームの拡張コントロール(BaseForm)
  ・ListBoxコントロールの機能拡張
  ・RichTextBoxコントロールの機能拡張
  ・PaperSizeクラスの機能拡張
 - コントロールライブラリのサンプル
  ・MaskEditのサンプル