マクロとは…一連の手作業の操作を記録して実行できる機能。記録したマクロは繰り返し実行可能
| オブジェクトの種類 | オブジェクトの名称 |
|---|---|
| セル | Range |
| ワークシート | Worksheets |
| ブック | Workbook |
| グラフ | ChartObjects |
| オートシェイプ | Shapes |
| 選択中のセル | ActiveCell |
| プロパティの種類 | プロパティの名称 |
|---|---|
| データ | Value |
| 色 | Color |
| 列の幅 | ColumnWidth |
| 行の高さ | RowHeight |
| 罫線 | Borders |
| 行番号 | Row |
| 列番号 | Column |
| 名前 | Name |
| アクティブシート | ActiveSheet |
| セルの左端の位置 | Left |
| セルの上端の位置 | Top |
| アクティブシートのすべての行 | Rows |
| オブジェクトの個数を返すプロパティ | Count |
| セルオブジェクトのプロパティ | |
| セルのデータ | Value |
| セルの数式 | Formula |
| 行の高さ | RowHeight |
| 列の幅 | ColumnWidth |
| セルの文字フォント | Font |
| 行番号 | Row |
| 列番号 | Column |
| フォントの名前 | [RangeObject].Font.Name |
| フォントサイズ | [RangeObject].Font.Size |
| 太字 | [RangeObject].Font.Bold = True/False |
| 文字色の指定 | [RangeObject].[InteriorObject].color = RGB(R,G,B) |
| [ShapeObject].Lineのメソッド | |
| Line.ForeColor.RGB = RGB(R,G,B) | |
| Line.Weight = 線の太さ | |
| Line.BeginArrowheadStyle = [矢印のスタイル] | 矢印のスタイル
|
| Line.EndArrowheadStyle = [矢印のスタイル] | |
| [WorkbookObject].Path | 指定したブックのファイルの場所を取得 |
| メソッドの種類 | メソッドの名称 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| オートフィルター | AutoFilter(Field:= 列数,Criteria1:= 比較演算子を前置して条件を指定,Operator:=[xlAnd:エクセルにおける&],Criteria2:=比較演算子を前置して条件を指定) ※引数なしでオートフィルターをクリア | |||||||||||||||
| 並べ替え | Sort(Key1:=並べ替えるオブジェクト, _ Order1:= 昇順[xlAscending]か降順[xlDescending], _ Header:=ヘッダーを含めるか否か, _ | |||||||||||||||
| コレクションの追加 | Add(After:=ワークシート名(選択したシートの右側), _ Before:=ワークシート名(選択したシートの左側), _ Count:=数値(追加するシート数)) ※場所指定なしでAddを用いるとワークシートはアクティヴシートの左側に追加されそのシートがアクティブになる | |||||||||||||||
| アクティベイト | Activate | |||||||||||||||
| シートをコピーする (指定先は別のブックでも可) | [WorksheetObject].Copy(After:=ワークシート名(選択したシートの右側), _ Before:=ワークシート名(選択したシートの左側) | |||||||||||||||
| シートを移動する (指定先は別のブックでも可) | [WorksheetObject].Move(After:=ワークシート名(選択したシートの右側), _ Before:=ワークシート名(選択したシートの左側) | |||||||||||||||
| シートを削除する | [WorksheetObject].Delete | |||||||||||||||
| [RangeObject].End(方向) |
| |||||||||||||||
| セルのメソッド | ||||||||||||||||
| コピー | Copy Copy Destination:=[copyTo] | |||||||||||||||
| 切り取り | Cut | |||||||||||||||
| 貼り付け | Paste | |||||||||||||||
| データの削除 | ClearContents | |||||||||||||||
| 結合 | Merge | |||||||||||||||
| [RangeObject].Offset([行の数],[列の数]) | オブジェクト位置から相対的な距離にあるオブジェクトを取得する | |||||||||||||||
| [RangeObject].Resize(行数,列数) | Rangeオブジェクトから指定した行と列の数だけの範囲のRangeオブジェクトに変更する。 | |||||||||||||||
| [RangeObject].Find(what,検索キーワード,各種パラメータ,...) | ||||||||||||||||
| メソッド名 | 内容 | 具体例 |
|---|---|---|
| AddChart2 [Worksheet].Shapes.AddChart2(Style,XlChartType,Left,Top,Width,Height) | 指定した種類のグラフをシートに挿入する | 棒グラフや折れ線グラフを生成 |
| AddLine [Worksheetobject].Shapes.AddLine([BeginX],[BeginY],[EndX],[EndY]) | 視点と終点を指定して線を追加する([BeginX:線の視点のX座標]/[BeginY:線の視点のY座標]/[EndX:線の終点のX座標]/[EndY:線の終点のY座標] | 矢印付き直線を描画 |
| AddShape | 指定した種類の図形をシートに追加する | 四角形や楕円などの図形を挿入 |
| AddConnector | 接続線を追加する(例:曲線や角線) | フローチャートでオブジェクト間を接続する |
| AddTextBox | コメントや説明用のテキストボックスを挿入 | |
| AddPicture AddPicture2 | 指定された画像ファイルをワークシート上に挿入する | PNGやJPEG画像をセル上に配置 |
| AddSmartArt | SmartArtグラフィックを追加する | 組織図やリスト形式のSmartArtを生成 |
| Add3DModel | 3Dモデルを追加する | 3D形式のオブジェクトや画像をシート上に配置 |
| AddCallout | 吹き出し図形を追加する | 吹き出しでコメントや説明を視覚的に表示 |
| AddCurve | ベジェ曲線を追加する | 曲線を描画して複雑な形状を表現 |
| Application.DisplayAlerts = False | 確認メッセージを非表示にする |
| Option Explicit | 宣言した変数のみを利用可能とする。VBAでは変数を宣言しなくても命令文の中で使用することができる。 |
| 比較演算子の種類 | 比較の内容 |
|---|---|
| = | 左辺と右辺が等しいか |
| < | 左辺が右辺より小さいか |
| > | 左辺が右辺より大きいか |
| <= | 左辺が右辺より小さいかまたは等しいか |
| >= | 左辺が右辺より大きいかまたは等しいか |
| <> | 左辺と右辺が等しくないか |
| Like パターン文字列 | パターンに一致する場合にTrue(正規表現の文字列、[#:任意の数字1文字/[!]:[]内の文字列でない場合) |
| データ型 | 説明 | 取り得る値の範囲 | 初期値 |
|---|---|---|---|
| Integer | 整数値 | -32,768 から 32,767 | 0 |
| Long | 長整数値 | -2,147,483,648 から 2,147,483,647 | 0 |
| Single | 単精度浮動小数点数 | -3.402823E+38 から 3.402823E+38 | 0 |
| Double | 倍精度浮動小数点数 | -1.79769313486232E+308 から 1.79769313486232E+308 | 0 |
| Currency | 通貨データ型 | -922,337,203,685,477.5808 から 922,337,203,685,477.5807 | 0 |
| String | 文字列 | 最大 約20億文字 | vbNullString |
| Boolean | 真偽値 | True(真) または False(偽) | False |
| Date | 日付と時刻 | 西暦100年1月1日から 西暦9999年12月31日まで | 1899/12/30 00:00:00 |
| Object | オブジェクト型 | セル(Range)やワークシート(Worksheet)など,何らかのオブジェクト | Nothing |
| Variant | 任意のデータ型 | 任意の型全て,場合によっては配列 | Empty |
| 関数名 | 機能 | カテゴリ | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Date | 現在の日付を取得 | 日付・日時 | |||||||||||||||
| Year | シリアル値から年のみを取得 | ||||||||||||||||
| Month(日付) | シリアル値の月を数値型(Integer)で返す | ||||||||||||||||
| Day(シリアル値) | シリアル値の日にちを数値型(Integer)で返す | ||||||||||||||||
| Len(str) | 文字列の文字数を取得。 | 文字列操作 | |||||||||||||||
| Left(str,count) | strからcount分の文字を返す | ||||||||||||||||
| Mid(str,startIndex,count) | strのstartIndexで指定した位置からcount分の文字列を抽出する。(1が先頭) | ||||||||||||||||
| Now() | 現在の時刻を取得する | ||||||||||||||||
| StrConv(文字列,変換の種類) | 文字列を別の種類に変換
| ||||||||||||||||
| Format(str,formatstring) | 第一引数で指定した文字列をformatstringで指定した形式に変換する。 | ||||||||||||||||
| Replace | 文字列を置換 | ||||||||||||||||
| Rnd | 0~1のランダムな数値を取得 | 数値 | |||||||||||||||
| Int | 数値の整数部分を取得 | ||||||||||||||||
| MsgBox | メッセージを表示する | その他 | |||||||||||||||
| LBound(array) | 最小のindex番号を返す | ||||||||||||||||
| UBound(array) | 最大のindex番号を返す |
| 引数名 | 内容 | |||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| XlChartType | グラフの種類
| |||||||||||||||||||||||||||||||||||||||||||||
| Left | グラフの左端の位置を指定(ポイント) | |||||||||||||||||||||||||||||||||||||||||||||
| Top | グラフの上端の位置を指定(ポイント) | |||||||||||||||||||||||||||||||||||||||||||||
| Width | グラフの幅(ポイント) | |||||||||||||||||||||||||||||||||||||||||||||
| Height | グラフの高さ(ポイント) | |||||||||||||||||||||||||||||||||||||||||||||
| 引数名 | 内容 |
|---|---|
| Sorce | データ元の範囲 |
| PlotBy | データをプロットする方法を[xlcolumns:データ系列が列/xlRows:データ系列が行]のいずれかで指定 省略時はxlcolumnsとみなす |
| 定数名 | 値 | 内容 |
|---|---|---|
| XlLegendPositionBottom | -4107 | グラフの下 |
| XlLegendPositionCorner | 2 | グラフの右上隅 |
| XlLegendPositionCustom | -4161 | 任意の位置 |
| XlLegendPositionLeft | -4131 | グラフの左 |
| XlLegendPositionRight | -4152 | グラフの右 |
| XlLegendPositionTop | -4160 | グラフの上 |
| 定数名 | 値 | 内容 |
|---|---|---|
| xlCategory | 1 | 項目軸(横軸)を指定 |
| xlValue | 2 | 数値軸(縦軸)を指定 |
| xlSeriesAxes | 3 | データ系列を指定 ※3Dグラフの場合のみ |
| 定数名 | 値 | 内容 |
|---|---|---|
| xlPrimary | 1 | 第1軸(項目軸) |
| xlSecondary | 2 | 第2軸を指定 |
| 引数の種類 | 値 | 内容 |
|---|---|---|
| vbModal | 1 | フォーム画面以外が操作不可 |
| vbModeless | 0 | フォーム画面以外が操作可 |
ウィンドウを閉じる
| ComboBoxオブジェクト.AddItem Item(String),Index(Integer) | ||
| プロパティ名 | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| オブジェクト名 | オブジェクトの名前 | |||||||||||||
| Caption | 表示する文字列 | |||||||||||||
| TabIndex | tabキーを押したときのカーソルが移動する順番 | |||||||||||||
| MaxLength | 入力する最大文字数 | |||||||||||||
| IMEMode | 全角の日本語入力や半角英数字など、入力モードを設定する。 |
| ||||||||||||
| 記述 | 説明 |
|---|---|
| Set 変数名 = [WordApplicationObject].Documents.Open(filepath) | wordApplicationオブジェクトによって、指定したドキュメントファイルを開き、ドキュメントオブジェクトを変数に格納する |
| [Word.DocumentObject].Close SaveChanges:=[wdSaveChanges:保存する/wdDoNotSaveChanges:保存しない] | ドキュメントオブジェクトを閉じる。引数SaveChangesにwdSaveChangesを指定して変更を保存する。(メソッド) |
| [Word.DocumentObject].SaveAs [filename] | 指定したfilenameでドキュメントオブジェクトを保存する。(メソッド) |
| [WordDocumentObject].ExportAsFixedFormat OutputFileName:= filename, ExportFormat:= wdExportFormatPDF | 指定したフォーマットでファイルをエクスポートする。ここではPDF |
| 記述 | 説明 |
|---|---|
| [Word.DocumentObject].Range(Start,End).Text | ドキュメントのStartで指定した文字位置からEndで指定した文字数までの文字を取得設定する(プロパティ) |
| [Word.DocumentObject].Paragraphs(index).Range.Text | ドキュメントのindexで指定した段落の文字列を取得設定する(プロパティ) |
| [Word.DocumentObject].Paragraphs(index).Range.InsertBefore [str] | ドキュメントのindexで指定した段落に文字をstrで指定した文字列を挿入する。 |
| [Word.DocumentObject].Tables(index).Cell(row,column).Range.Text | ドキュメントのindexで指定した表形式オブジェクトを対象に、row、columnで指定した行列に文字列を挿入する |
| [Word.DocumentObject].PrintPreview | 指定のドキュメントオブジェクトの印刷プレビューを表示する |
| [word.DocumentObject].Add | 新しいドキュメントオブジェクトを生成する。 |
デバッグ機能はフローチャートなどの工数と整合性を確認するためにも用いることが出来る。
| 機能名 | 主な機能 |
|---|---|
| イミディエイトウィンドウ | 指定した変数などの値の変化を記録 |
| カーソルの前まで実行 | カーソル位置の前までコードを実行 |
| ウォッチ式の編集 | 登録済みのウォッチ式の内容を変更 |
| クイックウォッチ | 選択した変数や式の値を表示 |
| ローカルウィンドウ | 現在使用中の変数名と値を一覧表示 |
これでWordオブジェクトライブラリの参照設定が完了し,Wordの操作が可能になります。なお,こちらの参照設定は,Wordを操作するブックごとに設定する必要がありますのでご注意ください。
| 記述 | 説明 | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FreeFile() | 利用可能なファイル番号を取得。ファイル番号はVBAがファイルを管理するために必要。 | ||||||||||||||||||||||||
| Open filePath For mode As #fileNum |
ファイルを開く。ファイルがない場合には新規作成される。モードは以下の通り。
| ||||||||||||||||||||||||
| Print #fileNum, data | テキストファイルにデータを書き込む | ||||||||||||||||||||||||
| Close #fileNum | ファイルを閉じる | ||||||||||||||||||||||||
| Line Input #fileNum data | 指定したファイル番号のファイルオブジェクトからdataで指定した変数へ一行分の文字列を格納する。 | ||||||||||||||||||||||||
| EOF(fileNum) | 指定のファイル番号のファイルが最終行にある場合にはFalse |
| 方法 | 長所 | 短所 |
|---|---|---|
| 標準ファイル入出力 関数 | -軽量で実行速度が速い。
| -テキスト解析(例:区切り文字処理など)が手動で必要。
|
| Workbooks.OpenText |
|
|
| QueryTables |
|
|
| FileSystemObject (FSO) |
|
|
| ADO(ActiveX Data Objects) |
|
|
| [ADODB.StreamObject].Charset | プロパティ:ファイルの文字コードを取得設定する。 |
| [ADODB.StreamObject].LineSeparator | プロパティ:改行コードを取得設定する。 |
| [ADODB.StreamObject].Open | メソッド:ストリームを開く |
| [ADODB.StreamObject].LoadFromFile filePath | メソッド:filePathで指定したファイルを読み込む |
| [ADODB.StreamObject].ReadText(adReadLine) |