- 日時: 2013/02/14 10:06
- 名前: VBレスキュー(花ちゃん)
- ***********************************************************************************
* カテゴリー:[エクセル][][] * * キーワード:VBA,Excel2007,Excel2010,エクセル,サンプル,Tips,VBからExcelを操作 * * キーワード:VB2010 から Excel を操作,VB.NET から Excel VBA を操作,マクロ,VB.NET * *********************************************************************************** VB2010 から Excel 2007/Excel 2010 を操作する為の基本的な方法を 色々紹介していきたいと思います。 下記サンプルをご利用される場合は、>>2 の注意事項をご覧になってからできる限り、 表示順にご覧下さい。
※ 表示項目等が多いので、最上部の[検索ボックス]にキーワードを入力して検索して 調べて見て下さい。
=================================================================================== 参考 1.エクセル−バージョン別新機能については、下記サイトに詳しく掲載されています。 http://www.civil-design.net/free/data/excel/new/00.html
2.自作ツールの【Excel Com オブジェクトの解放漏れチェックツール(480)】(有料サンプル集に付属) http://www.hanatyan.sakura.ne.jp/dotnet/excelcom.htm
===================================================================================
----------------------- 目 次 -------------------------- >>1 Excel の起動・終了に関する設定(このサンプルを試す場合は必須です。) 1. Excel のオープン処理用プロシージャ ・新規のファイルを開いて Excel を起動する場合 ・既存のファイルを開いて Excel を起動する場合 2. Excel ファイルの保存及び終了処理用プロシージャ ・保存時の問合せのダイアログを非表示に設定する方法 ・上書き保存する方法 ・ファイル名を付けて保存する方法 ・保存ファイルの拡張子に合せて、Excelの保存形式を変更 ・使用した Book や Excel を閉じる 3. ComObject の解放処理用プロシージャ ・魔界の仮面弁士 さんの投稿サンプルを使用させて頂いて、テスト環境用に 解放状況をメッセージボックスに表示するように設定しております。 4. タスクマネージャに、Excel.exe が残っていないか確認するプロシージャ 5. タスクマネージャに、残っている Excel.exe を強制終了する(テスト環境でのみ使用可) 6. Excel のイベントを VB2010 上で取得する 7. VB2010 から Excel を操作中は、ユーザーが勝手に EXcel を閉じれないように設定
>>2 VB2010からExcelを操作(サンプル集含む)するための注意事項
>>3 VB2010 から Excel へのデータの入力処理及び起動・終了処理例 1. Excel のオープン処理用プロシージャ の使用例 ・新規のファイルを開いて Excel を起動する 2. 単純なデータの入力と計算式の入力例 3. 2次元配列データの入力例 4. 1次元配列データの入力(For Each...Next ステートメントを使った)例 ・2次元配列データを1次元配列に格納 5. 1次元配列データを指定セル位置に入力 6. Excel の終了処理用プロシージャの使用例 >>4 VB2010 から Excel 上のデータをコピー&ペースト 1. Excel の指定のセルの値をクリップボード上にコピーする 2. クリップボード上のデータをExcel の指定のセルにペーストする
>>5 VB2010 から Excel のセルの背景色を設定 1. 塗りつぶしのパターンと色を設定する 2. 塗りつぶしのパターンと色を現在のカラー パレットのインデックス番号または定数で設定 3. 塗りつぶし等のカラーを設定法色々 4. Excel のカラーインデックス値の一覧表 5. セルの色(内部色)を標準にする 6. せるの色を明るく、または暗くする 7. 網掛けパターンに濃淡を設定する
>>6 VB2010 から Excel のセルにグラデーションを設定 1. Excel のオブジェクトの型が不明の時に型を調べる方法
>>7 VB2010 から Excel のセルの文字色を設定 1. 指定セル内の文字をすべて指定の色に設定する場合 2. 指定セル内の指定の文字だけを指定の色に設定する場合
>>8 VB2010 から Excel のセルのフォントの設定 1. 指定セル内の文字をすべて指定のフォントに設定する場合 2. 指定セル内の指定の文字だけを指定のフォントに設定する場合 3. 指定セル内の指定の文字のフォント名を変更する 4. 指定セル内の指定の文字のフォントスタイルを変更する 5. 指定セル内の指定の文字のフォントを上付き文字に設定する 6. 指定セル内の指定の文字のフォントを下付き文字に設定する 7. 指定セル内の指定の文字のフォントをアウトライン フォントに設定する 8. 指定セル内の指定の文字のフォントを影付きフォントに設定する 9. 指定セル内の指定の文字のフォントをテーマのフォントに設定する
>>9 VB2010 から Excel のセルの表示形式を設定 1. セルの書式設定の表示形式を文字列に設定する 2. セルの書式設定の表示形式を数値にし桁区切りに設定する 3. セルの書式設定の表示形式を日付に設定する
>>10 VB2010 から Excel のセル上に画像を表示及び拡大・縮小 1. Pictureオブジェクト(隠しオブジェクト)を使っての表示 2. Web 上の画像を指定して、Pictureオブジェクト(隠しオブジェクト)を使っての表示 3. Web 上の画像を指定して、Shapes.Add メソッドを使っての表示 (図がリンク オブジェクトとして挿入されるのを回避) 4. 画像をクリップボード経由で指定セル位置へ貼付け 5. セル上の画像を拡大表示(1.25 = 拡大率(1.25倍)で指定) 6. セル上の画像を縮小表示
>>11 VB2010 から Excel の指定位置に図形(オートシェイプ等)の描画及び削除 1. Worksheet 上に雲形吹き出しを描画 2. Worksheet 上にブロック矢印を描画 3. Worksheet 上に終端が三角形の矢印を描画 4. Worksheet 上に図形を個別に削除する場合 5. Worksheet 上の全て図形を削除する場合 6. オートシェイプ(ブロック矢印)の背景色と前景色を設定する
>>12 複数のCSVファイルを1つのBook内の複数のWorksheet上に読み込む
>>13 VB2010 から Excel の Worksheet の列幅を取得・列幅を設定 1. Worksheet の指定の列幅を文字数単位で取得 2. Worksheet の指定の列幅をポイント単位で取得 3. Worksheet の指定の列(A列〜X列)の列幅を5(文字)に設定 4. セル内の文字列長に合せて列幅を自動調整
>>14 VB2010 から Excel の Worksheet の行の高さを設定・行の高さを自動調整 1. Worksheet の行の高さをポイント単位で設定 2. Worksheet の行の高さを文字の高さに合せて自動調整
>>15 VB2010 から Excel の Worksheet の使用済みのセル範囲を取得 1. 指定のセル位置を含む空白行と空白列に囲まれた最小のセル範囲を取得 2. Activateなセル("A1")があるActivateセル領域を選択 3. Address プロパティで選択範囲を A1 形式で取得 4. Worksheet 上の使用済みのセル範囲を取得
>>16 R1C1形式をA1形式に変換する関数及びその使用例 1. 整数で指定した列番号を英字の列番号に変換する(10,1378)→("AZZ10") 2. MessageBox がエクセルの裏に隠れるのを防止する
>>17 A1形式をR1C1形式に変換する関数及びその使用例 1. A1形式をR1C1形式に変換する関数(計算式で求める方法) "AZZ200" → (200 , 1378) 2. A1形式をR1C1形式に変換する関数(Address 関数を使った方法) "A2:AZZ200" → (2,1,200,1378)
>>18 VB2010 から Excel の Worksheet 上で行・列・セルの挿入及び削除 1. R1ToA1 関数を使ってのデーターの入力例 2. 4行目と5行の間に1行挿入します。4方法 3. 4列目と5列の間に1列挿入します。3方法 4. C列の5行目にセルを挿入 5. C列の3行目のセルの右に挿入 6. 5行目を削除 7. 5列目を削除 8. C列の5行目のセルを削除
>>19 指定のセルが指定の範囲内(共有セル範囲内)にあるか、どうかを調査
>>20 Excel のシート数・シート名の取得及びシートの追加・削除 1. シート(Worksheet)数の取得 2. 新規にシート(Worksheet)を追加 3. シート(Worksheet)の名前を取得 4. シート(Worksheet)の名前を変更 5. シート(Worksheet)を削除 6. シート(Worksheet)名の一覧を取得 7. 新規にBook を開いた時に表示したいシート(Worksheet)数を設定
>>21 VB2010 から Excel のワークシート関数を使用する 1. 指定セル範囲内のデータの個数を取得 2. 指定セル範囲内のデータの最小値を取得 3. 指定セル範囲内のデータの最大値を取得 4. 指定セル範囲内のデータの合計を取得 5. 指定セル範囲内のデータの平均値を取得
>>22 VB2010 から Excel の表の縦横の合計を求める 1. セル領域のアドレス(A1:E6)を取得しR1C1 形式のアドレス(1,1,6,5)に変換 2. 行(列)の合計を求めるセル位置を求める 3. 行(列)の合計(計算式)を求める 4. 計算式をコピーする範囲を求める
>>23 Excel の指定列のデータから重複しないデータを抽出 1. データリストからオートフィルターを使って重複したものを除いたリストだけを抽出 2. 抽出したデータ件数を取得 3. 抽出したデータを個別に取得
>>24 VB2010 から Excel の並べ替え(ソート)を実行する 1. セル領域のアドレス(A1:E6)を取得しR1C1 形式のアドレス(1,1,6,5)に変換 ・選択範囲の開始位置を整数で求める A1 → 1,1 ・選択範囲の終了位置を整数で求める E6 → 6,5 2. 該当セル内で見つかったら、セル内に複数存在するか調べる 3. 見つかった文字列の位置を取得する 4. 見つかった文字列を赤色で太字で表示する
>>25 VB2010 から Excel の選択範囲内で指定文字を連続検索 1. 1 〜 100 までのランダムなデーターを作成 2. Range オブジェクトの Sort メソッド を使っての並べ替え ・セル範囲 "A1:J20" を B 列をキー(列単位)に降順の並べ替え 3. Excel 2007 〜 の Sort オブジェクト を使っての並べ替え ・B 列を基準に、値 を基準に、昇順で、テキストを数値データとして並べ替えます。
>>26 VB2010 から Excel のシートの指定の範囲のデータを取得 1. Count プロパティで指定範囲のセルの個数を取得 2. 指定範囲内のセルの値を1次元配列に確保 3. 取得したデータを VB2010 のリストボックスに表示する 4. 取得したデータを VB2010 のテキストボックスに表示する 5. 選択範囲内のデータをクリップボード経由でVB2010 のテキストボックスに表示する
>>27 VB2010 から Excel の既存のファイルを印刷 1. 既存のファイルをオープンして、Excel を起動 2. ページ設定ダイアログボックスを表示 3. 印刷プレビューを表示 4. シートの印刷設定 ・用紙サイズを設定 ・印刷の向きを設定 ・各余白をセンチ(Cm)単位で設定 ・印刷部数を設定
>>28 VB2010 から Excel のシートの指定範囲を印刷する 1. 指定範囲を格子で罫線を引く 罫線を引く場合は、下記を参照して下さい。 http://www.hanatyan.sakura.ne.jp/dotnet/Excel06.htm#no3 2. PageSetup.PrintArea プロパティを使って指定範囲を設定して印刷
>>29 VB2010 から Excel の印刷プレビューの画面を閉じる 1. 現在表示している Excel のタイトルを取得する 2. 指定ミリ秒後にバックグラウンド操作の実行を開始 3. 印刷プレビューを表示する 4. タイトル名を指定して Excel のウィンドウハンドルを取得 5. 現在使用している Excel をアクティブにする 6. Excel に Excel のショートカットキーを送り、印刷プレビューを閉じる >>30 Excel 2010 で印刷中のダイアログを非表示にして印刷(テスト版)
>>31 Excel 2010 で行列を入れ替え及び型式を指定して保存 1. セル A1 を含むデータ入力範囲をコピー 2. コピーしたデータを Sheet2 のセル A1 に行と列を入れ替えて貼り付け ・Sheet1 のデータを Sheet2 に形式を指定して貼り付け 3. xls 形式で名前をつけて保存(Excel 97〜2003 ブック形式 4. xlsx 形式で名前をつけて保存(Excel 2007〜ブック形式) 5. xlsm 形式で名前をつけて保存(Excel 2007〜マクロ有効ブック形式) 6. csv 形式で名前をつけて保存(CSV (カンマ区切り) 形式)
>>32 VB2010 から Excel のセルに関する操作、1行 Tips 集その1 1.単一セルを参照する場合(セル A1 に値を書き込む) 2.離れた単一セルを参照する場合(セル A3 と D1 と C2 に値を書き込む) 3.セル範囲を参照する場合(セル A1 〜 C3 の範囲を選択します) 4.離れたセル範囲を参照する場合(セル A1〜C3 と A6〜C9 と E〜H4 の範囲を選択します) 5.1列全体を参照する場合(C 列全体を選択します) 6.複数列全体を参照する場合(C列 〜 D列まで と F列 と H列 をそれぞれ選択します) 7.1行全体を参照する場合(2行目全体を選択します) 8.複数行全体を参照する場合(4行目〜6行目と9行目〜6行目と12行目を選択します) 9.Worksheet.Cells プロパティを使って全セルを参照する 10.Range.Cells プロパティを使ってセルを参照する 11.セルに値を設定する 12.セルの値を取得する 13.セルに数式を設定する 14.セルの数式を取得する 15.AutoFill メソッドを使ってセルに連続してデータを入力する
>>33 VB2010 から Excelのセルに関する操作(Addressプロパティの使用例) 1.セル(範囲)のアドレスを取得する 2.セルのアドレスを A1 形式で取得する 3.セルのアドレスを R1C1 形式で取得する 4.セルのアドレスを絶対参照で取得する 5.セルのアドレスを相対参照で取得する 6.セルのアドレスを自作メソッドを使って取得する
>>34 VB2010 から Excel のセルに関する操作、1行 Tips 集その2 2.アクティブ セル領域(空白行と空白列で囲まれたセル範囲)を取得 ・CurrentRegion プロパティの使用例
3.現在のセルに対して相対的な位置を指定・取得 ・Offset プロパティの使用例
4.対象となるセルが含まれる領域の終端のセルを取得 (End + 方向キー (↑、↓、←、→のいずれか) に相当します。) ・セル範囲 A1:E6 に対するセル位置 D3 からの左端のセル位置取得 ・セル範囲 A1:E6 に対するセル位置 D3 からの右端のセル位置取得 ・セル範囲 A1:E6 に対するセル位置 D3 からの上端のセル位置取得 ・セル範囲 A1:E6 に対するセル位置 D3 からの下端のセル位置取得 ・指定のセルが含まれる指定領域内の終端セルを取得する自作メソッド ・Range.End プロパティの使用例
5.指定されたワークシートで使われたセル範囲を取得 ・指定されたワークシートで使われたセル範囲を取得する自作メソッド ・UsedRange プロパティ
6.指定のセル範囲から指定した列数、行数分のセル範囲にサイズ変更する、変更されたセル範囲を取得 ・CurrentRegion プロパティの使用例 ・Range.Resize プロパティの使用例 ・指定セル範囲の行数を取得する(Rows.Count) ・指定セル範囲の列数を取得する(Columns.Count) ・MergeArea プロパティの使用例
7.セルを結合(マージ)する ・Merge メソッドの使用例
8.指定のセル位置の結合セル範囲を取得する ・指定のセル位置の結合セル範囲を取得する ・MergeArea プロパティの使用例
9.指定のセル範囲に結合セルが含まれているかどうかを調べる ・MergeCells プロパティの使用例 10.使用されたセル範囲内の最後のセルを取得 ・指定のシート内での使用済みの最後のセル位置を取得する ・表示形式が設定されているセル位置を取得する ・条件の設定が含まれているセル位置を取得する ・コメントが含まれているセル位置を取得する ・定数が含まれているセル位置を取得する ・数式が含まれているセル位置を取得する ・同じ表示形式が設定されているセル位置を取得する ・同じ条件の設定が含まれているセル位置を取得する ・すべての可視セル位置を取得する ・SpecialCells メソッドの使用例
11.指定のセル範囲内の空白のセルに、0 を代入する。 ・指定範囲内の空白のセルの個数を取得する
>>35 VB2010 から Excel のセルに関する操作、1行 Tips 集その3 1.Range オブジェクトの色々な、Clear メソッドを試す ・Range.Clear メソッド (オブジェクト全体をクリアします。) ・Range.ClearContents メソッド(選択範囲から数式と文字を削除します。) ・Range.ClearFormats メソッド(オブジェクトの書式設定を削除します。)
2.セル(セル範囲)をコピー及び貼り付ける 3.セル(表全体)をコピー及び貼り付ける 4.セル(セル範囲)を移動する 5.セル(表全体)をを移動する 6.形式を選択して貼り付け 7.セルのエラー値を取得する
>>36 VB2010 から Excel のセルにコメントを挿入及びコメント操作色々 1.Excel のセルにコメントを挿入及びコメント操作色々 ・Range.AddComment メソッド を使って、範囲にコメントを追加 ・Range.NoteText メソッド を使って、Range オブジェクトの左上隅のセルに 関連付けられているコメントを設定 ・指定のコメントを表示 ・すべてのコメントを表示 ・セル範囲を指定してコメントを削除 ・記入しているコメントを全て削除
>>37 VB2010 から Excel の表示処理速度を向上及び検索 1.画面の更新を停止して表示処理速度を向上させる 2.Excel 上での一般的な検索処理
>>38 VB2010から Excel のマクロを作成し実行する 1.VB2010 から Excel の標準モジュールにマクロのコードを書き込む 2.VB2010 から Excel のマクロを実行する 3.VB2010 から Excel の標準モジュール内のマクロのコードを削除する
使用コントロール類と配置図(画像をクリックすると元のサイズで見る事ができます。)
|