VBE(Visual Basic Editor)の起動
[ALT]+[F11] を 押下。 または「ツール」/「マクロ」/「Visual Basic Editor」をクリック[Microsoft Visual Basic for Application]が表示される
[sheet1]をダブルクリック
「挿入」/「標準モジュール」をクリック
VBEの書き方 ()内は省略可
Option VBASupport 1 ← LibreCALC使用時
Sub プロジェクト名()
(On Error GoTo 行ラベル)
正常時の処理内容
(Exit Sub)
(行ラベル:)
(エラー時の処理内容)
End Sub
[Exit Sub]で無限ループを強制終了する
VBEの保存
マクロ有効ブックとして保存
ファイルネームが .xls ⇒ .xlsmに替わる
Excel2010や2007ではm黄色の「!」マークがつく
VBAプログラムの実行
[ALT] + [F8]を押下 または 「ツール」の「マクロ」をクリック
ステップ実行は「ステップイン」ボタンをクリックする
実行用ボタンから実行
ワークシートにオートシェープで図形を作成する
オートシェープ図形上で右クリック
メニュー内の「マクロの登録」をクリック
「マクロの登録」画面で実行させたいマクロを一覧から選択し「OK」をクリックする
ワークシートのオートシェープ図形をクリックする
<オブジェクト> 操作対象を示す

同じオブジェクトに対し内容をまとめて記述する
With オブジェクト
.オブジェクトに対する処理
.オブジェクトに対する処理
End With
例 With Range(“B3”).Font
.Name = “Cosmic Sans MS”
.Size = 14
.Bold = True
End With
内容 B3セルのフォントを “Cosmic Sans MS” 、14サイズ、太文字とする。
プロパティ オブジェクトの属性/状態を示す
設定書式 オブジェクト.プロパティ = 値
取得書式 オブジェクト.プロパティ
| プロパティの種類 | プロパティの名前 | 例 |
| データ | Value | Range(“B3”).Value = 5 |
| 色 | Color | Range(“A1”).Color = RGB(0,0,255) |
| 行番号 | Row | |
| 列の幅 | ColumnWidth | |
| 罫線 | Border |
メソッド オブジェクトに対する動作の指示を示す
書式 オブジェクト.メソッド(引数1,引数2,・・)
メソッドの書式: オブジェクト.メソッド
| メソッドの種類 | メソッドの名前 | 例 |
| アクティブ | Activate | Range(“A1”).Activate Worksheet(“問題”).Activate Workbook(“テスト”).Activate |
| コピー | Copy | Range(“A1”).Copy Range(“B5”) |
| 切り取り | Cut | |
| 貼り付け | Paste | |
| セルや行、列を挿入 | Insert | Range(“A1”).Insert([Shift],[CopyOrigin]) |
| データの削除 | ClearContents | Range(“A1”).ClearContent |
| 形式の選択 | Paste Special |
ワークシートのセルの参照
オブジェクト.Range(セル1、セル2)
オブジェクト.Cells(行番号、列番号)
| 例 | 説明 |
| Range(“B1”) | セルB1 |
| Range(“B1,C2”) | セルB1とセルC2 |
| Range(“B1:C2”) | セル範囲B1~C2 |
| Range(“B1”,”C2”) | セル範囲B1~C2 |
| Range(“B1:C2″,”D3:E4”) | セル範囲B1~C2 と セル範囲D3~E4 |
| Range(“2:5”) | 行2~行5 |
| Range(“B:C”) | 列B~列C |
| Cells(3,3) | セルC3 |
| Cells(3,”C”) | セルC3 |
| Cells | 全てのセル |
変数を使用した1つのセルの指定はCellsプロパティを使用する(Rangeプロパティは使用できません)
例 Dim x As Integer
For x = 1 To 5
Cells(x,x).Value = 2*x
Next x
結果 A1=2、B2=4、C3=6、D4=8、E5=10
変数を使用したセル範囲(複数のセル)の指定はrangeプロパティとCellsプロパティを組み合わせて使用する
例 Dim x As Integer
For x = 1 To 4
Range(Cells(x,1),Cell(x,x)).Value = 2*x
Next x
結果 A1=2、B1,B2=4、C1,C2,C3=6、D1,D2,D3,D4=8
選択しているセルの参照
オブジェクト.Selection(選択しているセルを参照)
オブジェクト.ActiveCell(アクティブセルを参照)
いづれのプロパティも値の取得のみ可能で、戻り値はRangeオブジェクトです。
複数のウインドウを開いている時に、アクティブではないウインドウのセルを参照する場合は、windowオブジェクトを指定します。
セルの選択
オブジェクト.Select (セルやセル範囲を選択)
オブジェクト.Activate(セルをアクティブにする)
例 Worksheets(“Sheet3”).Active
Range(“A1:C5”).Select
Range(“B3”).Activate
セルをアクティブにするさいには、先にシートをアクティブにする。
行や列の参照
オブジェクト.Rows (行指定)
オブジェクト.Columns(列指定)
| 例 | 内容 |
| Rows | 全行 |
| Rows(2) | 2行目 |
| Rows(“2:4”) | 2~4行目 |
| Columns | 全列 |
| Columns(3) | C行 |
| Columns(“C”) | C行 |
| Columns(“D:E”) | D~E行 |
Range(“B4:D5”).Row(1).Interior.ColorIndex=8
B4~D5までのセル範囲の1行目(B4行)を8の色で塗る
変数の宣言 Dim 変数名 As データ型
| データ型 | 使用メモリ | 格納できる値 |
| バイト型(Byte) | 1バイト | 0〜255の整数 |
| ブール型(Boolean) | 2バイト | True または False |
| 整数型(Integer) | 2バイト | ー32768〜32767の整数 |
| 長整数型(Long) | 4バイト | −2147483648〜2147483647の整数 |
| 単精度浮動小数点型(Single) | 4バイト | ー3.302823E38〜3.402823E38 |
| 倍精度浮動小数点型(Double) | 8バイト | ー1.7976931348623E308〜1.7976931348623E308t |
| 通貨型(Currency) | 8バイト | -9223372036854775808~9223372036854775807 |
| 日付型(Date) | 8バイト | 西暦100年1月1日〜西暦9999年12月31日と時刻データ |
| 文字列型(String) | 10バイト+文字列数 | 文字列 |
| バリアント型 | 全ての値 | |
| オブジェクト型 | 4バイト | Workbook,Worksheet,Range |
宣言されていない変数の使用禁止はモジュール先頭に「Option Explict]を記載する。
オブジェクト型変数の使用方法
Dim 変数名 As オブジェクト型
Set 変数名 = オブジェクト
数値型や文字列型の変数は単に「変数名=値」の構文で値を格納できますが、オブジェクト変数の場合 Setステートメントを使用します。
例1:変数myRangesにセル範囲を格納する
Dim myRanges As Range
Set myRanges = Worksheet(“Sheet2”).Range(“B2:D4”)
例2:オブジェクト変数をクリアする場合は「Nothing」を使用する
Set myRanges = Nothing
定数の宣言 Const 定数名 As データ型 = 値
例: Const myColor As Integer = 46
1次元配列変数の宣言
Dim 変数名 (上限値) As データ型
例: Dim myArray(2) As String
myArray(0) = “雪”
myArray(1) = “月”
myArray(2) = “花”
注意:配列の開始番号を1から始める場合 [Option Base = 1] を最初に書く
配列を任意の番号から始める場合 [Dim myArray(2 To 4) As String]と宣言する
2次元配列変数の宣言
Dim 変数名(行数、列数)As データ型
例:Dim myData(2,1) As Integer
myData(0,0) = 0
myData(0,1) = 1
myData(1,0) = 10
myData(1,1) = 20
myData(2,0) = 30
myData(2,1) = 40
メッセージ画面を表示する MsgBox(prompt,buttons,title,helpfile,context)
prompt:メッセージを文字列で書く
参考:vbCrLfで改行する
buttons:表示するボタンやアイコンを指定する(下表)
| buttomの設定 | 値 | 説明 |
| vbOKonly | 0 | [OK]ボタンを表示する |
| vbOKCancel | 1 | [OK][キャンセル]ボタンを表示する |
| vbAbortRetryIgnore | 2 | [中止][再試行][無視] ボタンを表示する |
| vbYesNoCancel | 3 | [はい][いいえ][キャンセル] ボタンを表示する |
| vbYesNo | 4 | [はい][いいえ] ボタンを表示する |
| vbRetryCancel | 5 | [再試行][キャンセル] ボタンを表示する |
| vbCritical | 16 | 警告アイコンを表示する ✖ |
| vbQuestion | 32 | 問い合わせアイコンを表示する ? |
| vbExclamation | 48 | 注意アイコンを表示する ! |
| vbInformation | 64 | 情報アイコンを表示する i |
title:メッセージボックスのタイトルバーに表示する文字列を書く
helpfile:ヘルプを表示する場合、ヘルプファイルの名前を指定する
context:ヘルプを表示する場合、ヘルプに対応したコンテキスト番号を指定する
MsgBoxの戻り値:下表
| 定数 | 値 | クリックされたボタン |
| vbOK | 1 | [OK] ボタン |
| vbCancel | 2 | [キャンセル] ボタン |
| vbAbort | 3 | [中止] ボタン |
| vbRetry | 4 | [再試行] ボタン |
| vbIgnore | 5 | [無視] ボタン |
| vbYes | 6 | [はい] ボタン |
| vbNo | 7 | [いいえ]ボタン |
MsgBox関数の戻り値を条件に分岐する
例 Dim modorichi As Integer
modoorichi = MsgBox(“データーを消去しますか?” , VbOKCancel + vbQuestion)
if modorichi = vbOK Then
Range(“A1:C5”).CleanContents
End if
メッセージボックスに「データを消去しますか?」「OK」「キャンセル」が表示される。
「OK」をクリックするとA1~C5のデータを消去する。
ユーザーフォームの作成
1)ユーザーホームの追加
ツール/ユーザーホームをクリック ⇒「UserForm1」が作成される
2)タイトルバーの表示を変える
CaptionのUserForm1を変更する
3)コマンドボタンの配置(ユーザーフォームに配置されるコントロール:部品)
フォームをクリック/ツールボックスからコマンドボタンをクリック/配置したいところでクリック
| コントロールの種類 | 内容 |
| ラベル | 文字を表示 |
| テキストボックス | 文字を入力 |
| オプションボタン | 複数の選択肢の中から1つの項目を選択 |
| フレーム | オプションボタンをグループにまとめる |
| チェックボックス | オンかオフの状態で二者拓一の選択 |
| リストボックス | 複数の選択肢の中から1つあるいは複数の項目を選択 |
| コンポボックス | 複数の選択肢の中から1つの項目を選んだり、文字を入力したりする |
| RefEdit | セルのハインを選択 |
| コマンドボタン | 実行ボタンを作成 |
| トグルボタン | ボタンをクリックしてオンかオフの状態を選択 |
| タブストリップ | タブをクリックして表示する内容を切り替える |
| マルチページ | タブをクリックして表示するページを切り替える |
| スクロールバー | スクロールっ操作で数値を指定 |
| スピンボタン | ボタンをクリックして数値を指定 |
| イメージ | 画像を表示 |
4)コマンドボタンの名前を変える
表示/CaptionのCommandButtonを変更する
5)イベントブロシージャを作成する
入力用のダイヤログボックスを表示する
Application.InputBox(prompt,title,drfault,,,,type)
prompt:表示したいメッセージを文字列で書きます。
title:ダイアログボックスのタイトルバーに表示する文字列を書きます
例 Dim nyuuryoku As string
nyuuryoku = Application.Inbox(“住所を入力してください”,”あなたの住所”,”ここに入力)”)
if nyuuryoku = “False” Then MsgBox”キャンセルされました”
elseIf nyuuryoku = “” Then MsgBox”未入力です”
Else Range(“C4”).Value = nyuuryoku
住所を入力用ダイヤログボックスで入力し、キャンセルをクリックしたら「キャンセルされました」表示。入力しないで「OK」をクリックした場合は「未入力です」表示。入力し「OK」をクリックした場合は、入力値をC4セルに転送する
有効なデータが入力されるまでダイヤログボックスを表示する(DO Loop Untilを使用する)
例 Dim nyuuryoku As string
Do
nyuuryoku = Application.Inbox(“住所を入力してください”,”あなたの住所”,”ここに入力)”)
if nyuuryoku = “False” Then Exit Sub
Loop Until nyuuryoku = string ????
Else Range(“C4”).Value = nyuuryoku
有効なデータが入力されるまでダイヤログボックスを表示する(DO Loop Untilを使用する)
例 Do
命令文の途中の改行(スペース+アンダースコア: _)
演算子
| 算術演算子 | 意味 | 使用例 | 結果 |
| + | 和 | 7+2 | 9 |
| ー | 差 | 7−2 | 5 |
| * | 積 | 7*2 | 14 |
| / | 商 | 7/2 | 3.5 |
| ^ | べき乗 | 7^2 | 49 |
| ¥ | 整数商 | 7¥2 | 3 |
| Mod | 割り算のあまり | 7Mod2 | 1 |
| 比較演算子 | 意味 | 使用例 | 結果 |
| = | 等しい | 7 = 2 | False |
| <> | 等しくない | 7 <> 2 | True |
| > | より大きい | 7 > 2 | True |
| >= | 以上 | 7 >= 2 | True |
| < | より小さい | 7 < 2 | False |
| <= | 以下 | 7 <= 2 | False |
| Like | パターンマッチング | 文字列1 Like 文字列2 |
| 論理演算子 | 意味 |
| And | 複数の論理式が 〜 かつ 〜 で連結される |
| Or | 複数の論理式が 〜 または 〜 で連結される |
| Not | 否定 |
| 連結演算子 | 意味 | 使用例 | 結果 |
| & | 文字列の連結 | ”Excel” & ”VBA” | ExcelVBA |
| 文字列の連結 | ”Excel” + ”VBA” | ExcelVBA |
If 条件式1 Then 処理1 ElseIf 条件式2 Then 処理2 Else 処理3
End If
Select Case 比較対象
Case 条件1 処理1
Case 条件2 処理2
:
Case Else 処理x
End Select
For 変数名 = 初期値 To 最終値 (Step 増分値)
処理
Next 変数名
[Exit For]で Forループから抜ける
For Each 変数 in コレクション
繰り返し実行する処理
Next
動作:オブジェクトの数だけ処理を繰り返す。
コレクション:Selection--プロパティの一種でワークシート上で選択しているオブジェクトを取得する
:Range(“A1:B4”)–A1セル~B4セルの範囲
Do While 条件式
条件が一致するとき実行する処理
Loop
条件式が成立しているとき、処理を繰り返す
[Exit Do]で Doループから抜ける。
Do Until 条件式
条件が一致しないとき実行する処理
Loop
条件式が成立しないとき、処理を繰り返す(条件が成立するまで処理を繰り返す)
[Exit Do]で Doループから抜ける。
Do
条件が一致するとき実行する処理
Loop While 条件式
処理を1回実行し、条件式が成立している時、処理を繰り返す。
[Exit Do]で Doループから抜ける。
Do
条件が一致しないとき実行する処理
Loop Until 条件式
処理を1回実行し、条件式が成立しない時、処理を繰り返す。(条件が成立するまで処理を繰り返す)
[Exit Do]で Doループから抜ける。
Rangeオブジェクト.AutoFilter Field:=フィールド番号 _
,Criteria1:= 1つ目の条件値 _
,Operator:= 条件の種類 _
,Criteria2:= 2つ目の条件値
Rangeオブジェクトは、表を形成する一部のセルを指定する。
Field:=フィールド番号は、絞り込む基準となる列を整数で指定します。表の左端の列を「1」として、絞り込む列の何列目かを指定する。
Operator:=条件の種類は、「1つ目の条件値」と「2つ目の条件値」の組み合わせを指定します。2つの条件が成立するなら[xlAnd],2つの条件のいづれかが成立するのなら[xlOr]を使用します。
Now(現在の日時を取得する)
戻り値は、コントロールパネルの日時の表示形式による
Date(現在の日付を取得する)
戻り値は、コントロールパネルの日付の表示形式による
Year(シリアル値から年のみを取得する)
Len(文字列)
動作:文字列の文字数を取得する
StrConv(文字列、変換の種類)
動作:文字列の種類を変換する。
| 変換の種類 | 意味 |
| vbWide | 半角文字を全角文字に変換する |
| vbNarrow | 全角文字を半角文字に変換する |
| vbUpperCase | 大文字に変換する |
| vbLowerCase | 小文字に変換する |
| vbProperCase | 先頭の文字のみ大文字に変換する |
| vbKatakana | ひらがなをカタカナに変換する |
| vbHiragana | カタカナをひらがなに変換する |
文字列 Like パターン
動作:パターンマッチングを行う
| 例 | 意味 |
| chr Like “[ A – z ] | 全角英字 マッチング |
| chr Like “[A-z] | 半角英字 マッチング |
| chr Like “[ 0 – 9 ] | 全角数字 マッチング |
| chr Like “[0-9] | 半角数字 マッチング |
複数のマッチングを条件を指定する Or And
例 chr Like “[A-z]” Or chr Like “[0-9]”
Rnd(0~1のランダムな数値を発生させる)
Int(数値の整数部分のみを取得する)
Mid(文字列、開始位置、文字数)
動作:文字列から指定の字数分 取得する
Replace(文字列を置換する)
セルの表示形式
オブジェクト.NumberFormatLocal = “整数;負数;0;文字列”
数値の書式
| 書式記号 | 内容 | 例 |
| 0 | 数値1桁、0を補う | 4321.5678に「000.00」を設定 ⇒ 4321.57 |
| 42.3に「000.00」を設定 ⇒ 042.30 | ||
| 0に「0”個”」を設定 ⇒ 0個 | ||
| # | 数値1桁、0を補わない | 7654.321に「#,##0.##」を設定 ⇒ 7,654.32 |
| 76.5に「#,##0.##」を設定 ⇒ 76.5 | ||
| 0に「#”個”」を設定 ⇒ 個 (0は表示されない) | ||
| % | パーセント | 0.76532に「0.00」を設定 ⇒ 76.53% |
日付と時刻の書式
| 書式 | 内容 | 例 |
| yyyy/yy | 西暦4桁/2桁 | 1999/4/2に「yyyy」を設定 ⇒ 1999 |
| mm/m | 月2桁/1桁 | 1999/4/2に「mm/dd」を設定 ⇒ 04/02 |
| dd/d | 日2桁/1桁 | 1999/4/2に「m”月”d”日”」を設定 ⇒ 4月2日 |
| aaaa | 曜日 | 1999/4/2に「aaaa」を設定 ⇒ 火曜日 |
| aaa | 曜日 | 1999/4/2 に「m/d(aaa)」を設定 ⇒ 4/2(火) |
| hh/h | 時2桁/1桁 | 19:08:26に「hh:mm」を設定 ⇒ 19:08 |
| mm/m | 分2桁/1桁 | 19:08:26 に「h”時”m”分”」を設定 ⇒ 19時8分 |
| ss/s | 秒2桁/1桁 | 19:08:26 に「hh:mm:ss」を設定 ⇒ 19:08:26 |
| AM/PM | AMまたはPM | 19:08:26 に「h AM/PM」を設定 ⇒ 7 PM |
その他の書式
| 書式 | 内容 | 例 |
| @ | 文字列 | 佐藤に「”担当”:@」を設定 ⇒ 担当:佐藤 |
| [色名] | 文字に色を付ける | -34.5に「[青]0;[赤]”▲”0」を設定 ⇒ ▲34 |
セルの配置設定
オブジェクト.HorizontalAlignment = 設定値
オブジェクト.VerticalAlignment = 設定値
オブジェクト.Orientation = 設定値
オブジェクト.WrapText = True/False
| HrizontalAlignmentプロパティ | 内容 |
| xlGeneral(デフォルト) | 標準 |
| xlLeft | 左詰め |
| xlCenter | 中央揃え |
| xlRight | 右詰め |
| xlFill | 繰り返し |
| xlJustify | 両端揃え |
| xlCenterAcrossSelection | 選択範囲で中央 |
| xlDistributed | 均等割り付け |
例 Range(A1).HorizontalAlignment = xlLeft A1セルを左づめ
| VerticalAlignmentプロパティ | 内容 |
| xlTop | 上詰め |
| xlCenter(デフォルト) | 中央揃え |
| xlBottom | 下詰め |
| xlJustify | 両端揃え |
| xlDistributed | 均等割り付け |
例 Range(A1).VerticalAlignment = xlVAlignTop A1セルを上づめ
Orientationプロパティ
例 Range(A1).Orientation = xlHorizontal 横書き
Range(A1).Orientation = xlVertical 縦書き
Range(A1).Orientation = -90 ~ 90 角度指定
WrapTextプロパティ
例 Range(A1).WrapText = True A1セル内で折り返す
Range(A1).WrapText = False A1セル内で折り返さない
フォントの設定
オブジェクト.Name = フォント名
オブジェクト.Size = サイズ
オブジェクト.Bold = True(太文字)/False(解除)
オブジェクト.Italic = True(斜体)/False(解除)
オブジェクト.Underline = True(下線)/False(解除)
例 With Range(“A1”).Font
.Name = Arial Black セルA1に書かれている文字をArial Blackフォントにする。
.size = 16 セルA1に書かれている文字のフォントサイズを16にする。
.Bold = True セルA1に書かれている文字を太文字にする。
.Italic = True セルA1に書かれている文字を斜体にする。
.Underline = True セルA1に書かれている文字に下線を引く。
End With
セルを結合/解除する
オブジェクト.MergeCell= True(結合)/False(解除)
例 Range(A1:A2).MergeCell = True セルA1とセルA2を結合する
セルの色を設定
オブジェクト. Interior.ColorIndex = 色の設定値
オブジェクト. Font.ColorIndex = 色の設定値
例:セルA1を赤(3)に設定しフォントの色を(白)にする
With Range(“A1”)
.Interior.ColorIndex = 3
.Font.ColorIndex = 2
End With
例: セルA1の色を解除しフォントの色を自動にする
With Range(“A1”)
.Interior.ColorIndex = xlColorIndexNone
.Font.ColorIndex = xlColorIndexAutomatic
End With
セル位置に罫線を引く
オブジェクト.Borders(Index)
| Borders(Index) | 内容 |
| xlEdgeTop | 上端の横線 |
| xlEdgeBottom | 下端の横線 |
| xlEdgeLeft | 左端の縦線 |
| xlEdgeRight | 右端の縦線 |
| xlInsideHorizontal | 内側の横線 |
| xlInsideVertical | 内側の縦線 |
| xlDiagonalUP | 右上がりの斜線 |
| xlDiagonalDown | 右下がりの斜線 |
罫線の種類を設定する
オブジェクト.LineStyle = 設定値
LineStyleの設定
| 設定値 | 内容 |
| xlContinuous | 細実線 |
| xlDash | 破線 |
| xlDashDot | 一点鎖線 |
| xlDashDotDot | 二点鎖線 |
| xlDot | 点線 |
| xlDouble | 二重線 |
| xlSlantDashDot | 斜め破線 |
| xlLineStyleNone | なし |
例 Range(“B2:D6”).Borders.LineStyle = xlContinuous
B2~D6セルの表に格子罫線を引く
Range(“B2:D2”).Borders(xlEdgeBottom).LineStyle = xlDouble
B2~D2のセルに下二重線を引く
罫線の太さを設定する
オブジェクト.Weight = 設定値
| Weightの設定 | 内容 |
| xlHairline | 極細 |
| xlThin | 細 |
| xlMedium | 中 |
| xlThick | 太 |
セルの周囲に罫線を引く(メソッド)
オブジェクト. BorderAround(LineStyle,Weight,ColorIndex,Color)
セルをコピーする
オブジェクト.Copy(Destination)
例 Range(“B2:C4”).Copy Range(“B7”)
B2~C4セルをB7セル(先頭のみでOK)にコピーする
クリップボードを経由して貼り付ける
オブジェクト.Paste(Destination)
例 Range(“B2:C4”).Copy B2~C4セルの内容をクリップボードにコピー
ActiveSheet.Paste Range(“B7”) アクティブシートのセルB7に貼り付け
形式を選択して貼り付ける
Range(セル).PasteSpecial(Paste,Operation,SkipBlanks,Traanspose)
| Paste設定 | 内容 |
| xlPasteAll(デフォルト) | すべて |
| xlPasteFormulas | 数式 |
| xlPasteValues | 値 |
| xlPasteFormats | 書式 |
| xlPasteComments | コメント |
| xlPasteValidation | 入力規制 |
| xlPasteAllExceptBorders | 罫線を除くすべて |
| xlPasteColumnWidths | 列幅 |
| xlPasteFormulasAndNumberFormats | 数式と数値の書式 |
| xlPasteValuesAndNumberFormats | 値と数値の書式 |
Operation:演算をして貼り付ける場合に指定します。
SkipBlanks:空白セルを貼り付け対象にしない場合はTrue,対象にする場合はFalse,デフォルトはFalse
Traanspose:貼り付ける際、行と列を入れ替える場合はTrue、入れ替えない場合はFalse、デフォルトはFalse
セルを挿入する
オブジェクト.Insert(Shift,CopyOrigin)
Shift:セルの移動方向を設定 ShiftUp,ShiftDown
CopyOrigin:書式のコピー元を設定
セルを削除する
オブジェクト.Delete(Shift)
セルの高さや幅を設定
オブジェクト.RowHeight = 高さ
オブジェクト.ColumnWidth = 幅
セルに数式を設定する
オブジェクト.Formula = 数式
セルの値や書式をクリアする
オブジェクト.Clear 書式とデータを消去
オブジェクト.ClearFormats 書式を消去
オブジェクト.ClearContents データを消去
オブジェクト.ClearComments コメントを消去
セルに連続データを設定する
オブジェクト.AutoFill(Destination、Type)
| Typeの設定 | 内容 |
| xlFillDefault(デフォルト) | 標準 |
| xlFillCopy | セルのコピー |
| xlFillSeries | 連続データ |
| xlFillFormats | 書式のみコピー |
| xlFillValues | 書式なしコピー |
| xlFillDays | 日単位 |
| xlFillWeekdays | 週日単位 |
| xlFillMonths | 月単位 |
| xlFillYears | 年単位 |
例 B1の「月」を基準にして、「火(C1),水(D1)、木(E1)、金(F1)」を設定する
Range(“B1”).Value = “月”
Range(“B1”).AutoFill Range(“B1:F1”),xlWeekdays
例 A1の1を基準にして「2(A2),3(A3),4(A4),5(A5),6(A6),7(A7),8(A8)」を設定する
Range(“A1”) = 1
Range(“A1”).AutoFill Range(“A1:A8”),xlFillSeries
ソート(複数の条件で並べ替え)
オブジェクト.Sort(Key1,Oder1,Key2,Oder2,Key3,Oder3,Header,OderCustom)
| Oderで指定する設定 | 内容 |
| xlAscending(デフォルト) | 昇順 |
| xlDecending | 降順 |
| Headerで指定する設定 | 内容 |
| xlGuess | Excelが自動判別 |
| xlNo(デフォルト) | 指定範囲全体を並べ替える |
| xlYes | 先頭行を除いた範囲を並べ替える |
オートフィルタ(条件に一致するデータを抽出)
Range(セル).AutoFilter(Field,Criteria1,Operator,Criteria2)
Field:フィルタ条件の対象となる列の番号を指定する。列番号は、対象のセル範囲の左から数える。
Criteria1:第1のフィルタ条件の文字列を記載する。
Operator:2つのフィルタ条件を設定する。下表参照
Criteria2:第2のフィルタ条件の文字列を記載する。
| Operator設定 | 内容 |
| xlAND(デフォルト) | And条件 |
| xlOr | Or条件 |
| xlTop10Items | 上位10件 |
| xlTop10percent | 上位10% |
| xlBottom10Items | 下位10件 |
| xlBottom10percent | 下位10% |
例1 Range(“C5”).AutoFilter 2,”男” セルC5を先頭とする対象のエリアの2列目が男であるデータを抽出
例2 Range(“C5″).AutoFilet Field:=4,Criteria1:=”>=400″,Operator:=xlAnd,Criteria2:=”<=500″
セルC5を先頭をする対象エリアの4列目の値が400以上で かつ 500以下のデーターを抽出
データを検索
オブジェクト.Find(What)
例: Dim kensaku As Range
Set kensaku = Range(“A1:A11”).Find(“男”)
データを置き換える
オブジェクト.Replace(What,Replacement)
What:検索する文字列を指定
Replacement:置き換える文字列を指定
例: Range(“A1:D6”).Replace(”男性”、”女性”) A1〜D6の範囲で、男性データを女性に置き換えた
ワークシートをアクティブにする
オブジェクト.Activate
例 Worksheets(“宿題”).Activate 宿題シートをアクティブにする
ワークシートの追加
オブジェクト.Add(Before,After,Count)
Before,After:ワークシートの追加する位置を指示します。どちらかを選択します。2つとも省略した場合は、Beforeになります。
Count:追加するワークシートの数を指定します。デフォルトは1です
例: Worksheets.Add After:=Worksheet(3),Count:=2 3番目のワークシートの後ろに2枚のワークシートを追加
ワークシートの削除
オブジェクト.Delete
ワークシートの名前を変更
オブジェクト.Name = 設定値
例 worksheets(“Sheet2”).Name = “練習”
ブックを開く
オブジェクト.Open
例 Workbooks.Open “C:\DATA\テスト.xls”
ブックをアクティブにする
オブジェクト.Activate
例 Workbooks(“テスト.xls”).Activate テストブックをアクティブにする
ブックに名前をつけて保存
オブジェクト.SaveAs(Filename.FileFormat)
| FileFormatの設定 | 内容(拡張子) |
| xlAdin | アドイン(.xla) |
| xlCSV | カンマ区切り(.txt/.csv) |
| xlCurrentPlatformText | テキスト(.txt) |
| xlExcel9795 | Excel97-2000,Excel5.0/95(.xls) |
| xlHtml | Webページ(.htm) |
| xlTemplate | テンプレート(.xlt) |
| xlWebArchive | Webアーカイブ(.mht) |
| xlWorkbookNormal(デフォルト) | ブック(.xls) |
ブックを上書き保存
オブジェクト.Save
例: ActiveWorkbook.Save
ウインドウの表示倍率を変更
オブジェクト.Zoom = 設定値(パーセント設定)
ウインドウの最大化/最小化
オブジェクト.WindowState = 設定値
| WindowStateの設定値 | 内容 |
| xlMaximized | 最大化 |
| xlNormal | 標準 |
| xlMinimized | 最小化 |
ウインドウの位置とサイズを設定
オブジェクト.Top = 設定値 上端からの距離を設定
オブジェクト.Left = 設定値 左端からの距離を設定
オブジェクト.Height = 設定値 高さを設定
オブジェクト.Width = 設定値 幅を設定
例:
With ActiveWindows
.WindowState = xlNormal 標準表示
.Top = 10
.Left = 50
.Height = 100
.Width = 200
End With
印刷プレビューの表示
オブジェクト.PrintPreview
印刷の実行
オブジェクト.PrintOut(Form,To,Copies,,,,Collate)
from:開始ページ
To:終了ページ
Copies:印刷部数
Collate:True/False 部数単位の印刷