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 部数単位の印刷