【VBA入門】基礎文法まとめ【Excelマクロ】

ExcelのVBA(マクロ)で、「ユーザー定義型は定義されていません。」エラーの対処方法についてまとめました。

【変数とは】使い方

変数とは、値(数値、文字列など)を格納する入れ物です。
変数を使用するには、まずを宣言します。

書式 説明
Dim 変数名 変数宣言には「Dim」を使用します。
変数名 = 値 変数に値を格納するには「=」を使用します。  

変数宣言せずにいきなり「変数名 = 値」から始めることも可能です。
ただし、変数宣言せずにコードを書いていると「同じ変数名を重複させてしまったり」バグの元になりやすいので出来るだけ変数宣言した方がいいです。

Sub test()

    ' 変数xとyを宣言
    Dim x
    Dim y

    ' 変数xに数値を代入
    x = 100

    ' 変数xに文字列を代入
    y = "百"

End Sub
関連記事
1 【VBA】変数の使い方・宣言方法【Excelマクロ】

【データ型】種類・型宣言文字

VBAでは、以下のデータ型があります。

型名 種類(byte数) 型宣言文字 値の範囲
Integer 整数型(2) % -32,768~32,767
Long 長整数型(4) & -2,147,483,648~2,147,483,647
Single 単精度浮動小数点数型(4) ! -3.402823E38~-1.401298E-45(負の数)
1.401298E-45~3.402823E38(正の数)
Double 倍精度浮動小数点数型(8) # -1.7976931348623E308~-4.94065645841247E-324(負の数)
4.94065645841247E-324~1.79769313486232E308(正の数)
Object オブジェクト型(4) オブジェクトの参照アドレス
String 文字列型(10+文字列の長さ) $ 0~2GB
Byte バイト型(1) 0~255
Boolean ブール型(2) True(真) or False(偽)
Variant バリアント型(16) 倍精度浮動小数点数型と同じ
Variant バリアント型(22+文字列の長さ) 文字列型(可変長)と同じ
Date 日付型(8) 西暦100年1月1日~西暦9999年12月31日
Currency 通貨型(8) @ -922,337,203,685,477.5808~922,337,203,685,477.5807

型宣言文字は、データ型を示す文字です。
「変数」「定数」「関数名」の後ろに付けることで型宣言を省略できます。
ただし、バグの元になりやすいのであまり利用しません。

型宣言文字の利用例 補足
Dim x% 整数型(Integer)の変数xを宣言します。
関連記事
1 【VBA/マクロ】データ型の種類・型宣言文字

【配列】1次元配列、2次元配列

配列(Array)とは、「データを一列に並べたもの」で、大量のデータを扱う場合によく用いられます。

「配列」の詳細についてはこちら
1 【配列とは】仕組み・変数との違い

VBAでは、「固定長配列」「動的配列」の2種類を宣言できます。

種類 説明 宣言例
固定長配列 要素数と次元数が固定された配列 Dim 配列名(添字の上限値) As データ型名
動的配列 要素数と次元数を途中で変更可能な配列 Dim 配列名() As データ型名
Sub test()

    '文字列型の配列を宣言(要素数は3で固定)
    Dim member(2) As String
    
    '0番目要素に文字列を代入
    member(0) = "アベンジャー"
    
    '1番目要素に文字列を代入
    member(1) = "バゼット"
    
    '2番目要素に文字列を代入
    member(2) = "カレン"
    
    '1番目要素を取り出して表示'
    MsgBox member(1) 'メッセージボックスに「バゼット」と表示'

End Sub

「Dim member(2) As String」で固定長配列を宣言しています。
添字の最大値が「2」なので、要素番号0、1、2まで扱えます。
よって、要素数は3となります。

Array関数を使うと、次のようにコンパクトに配列に値をセットすることができます。

Sub test()

    '変数を宣言
    Dim member As Variant
    
    '変数の値に配列をセット
    member = Array("アベンジャー", "バゼット", "カレン")
    
    '1番目要素を取り出して表示'
    MsgBox member(1) 'メッセージボックスに「バゼット」と表示'

End Sub

Variant型変数の値として、配列を格納することができます。
その場合、Array関数を使って配列要素をまとめて指定することが可能です。
(※Variant型の配列ではなく、配列を値として持つバリアント型変数であることに注意)

2次元配列

通常の配列は、データを1列に並べるため、1次元配列です。
それに対して、2次元配列は縦横の2次元で配列を考えます。
2次元で配列を考えると、表のデータなど、2次元のデータを扱う際には便利です。

VBAで2次元配列を宣言するには次のように記述します。

Dim 配列名(添字の上限値1, 添字の上限値2, ...) As データ型名
パラメータ 説明
添字の上限値1 縦の要素数
添字の上限値2 横の要素数

サンプルコード

サンプルプログラムのソースコードです。

Sub test()
    '文字列型の配列を宣言(要素数は3で固定)
    Dim member(0, 1) As String
    
    '要素(0, 0)に文字列を代入
    member(0, 0) = "アベンジャー"
    
    '要素(0, 1)に文字列を代入
    member(0, 1) = "バゼット"
    
    
    '1番目要素を取り出して表示'
    MsgBox member(0, 1) 'メッセージボックスに「バゼット」と表示'

End Sub
関連記事
1 【VBA】2次元配列の使い方・宣言方法【Excelマクロ】
2 【VBA/マクロ】配列の使い方・宣言方法

【算術演算子】算術演算子、比較演算子

算術演算子とは、足し算(加算)、引き算(減算)、掛け算(乗算)、割り算等(除算)を行うために使う演算子です。
つまり、これを使うことで色々な計算が出来ます。
VBA(マクロ)使える算術演算子は下記の通りです。

演算子 意味 説明
+ 加算 x + y なら xとyを足す
減算 x – y なら xからyを引く
* 乗算 x * y ならにyをかける
/ 除算 x / y なら xをyで割る
¥ x \ y なら xをyで割った商を求める
Mod 余剰 x % y なら xをyで割った余りを求める
^ べき乗 x ^ y ならxのy乗を求める

※整数を割り算(/)した場合、小数点以下は切り捨てられます。

比較演算子とは、その名の通り、演算子の左辺と右辺を比較して、「等しいかどうか」や「大小」の判定を行います。
そして、判定結果として真(true)か偽(false)の値を取ります。
比較演算子は関係演算子とも呼ばれています。

演算子 意味 説明
< 小なり x < y なら xはyより小さい
<= 小なりイコール x <= y なら xはy以下
> 大なり x > yなら xはyより大きい
>= 大なりイコール x >= y なら xはy以上
= イコール x = y なら xとyは等しい
<> ノットイコール x <> y なら xとyは等しくない

※「イコール」「ノットイコール」は一般的なプログラミング言語とは記述が違うので注意

関連記事
1 【VBA/マクロ】比較演算子の使い方
2 【VBA/マクロ】算術演算子の使い方
3 【VBA】演算子一覧【Excelマクロ】

【文字列処理】置換、位置探索

文字列の置換

Excel/VBAでは、Replace関数で文字列を置換できます。

Replace(expression, find, replace[, start[, count[, compare]]])
パラメータ 説明
expression 文字列式(置換する文字列を含んだモノ)
find 検索対象の文字列
replace 置換する文字列
start expression内の内部文字列の検索開始位置(デフォルトは1)
count 置換する文字列数(デフォルトは-1:全て置換)
compare 文字列比較のタイプ(文字列式の評価に利用)

※[]内のパラメータは省略可能です。省略するとデフォルトで実行されます。

Sub test()
    
    Dim str As String
    Dim str2 As String

    str = "CASTER"

    str2 = Replace(str, "C", "M")

    MsgBox str2  ' MASTER
    
End Sub

文字列「CASTER」のうち、CをMに置換しています。

文字列の位置検索

Excel/VBAでは、InStr関数で文字列の位置を検索できます。

InStr([start, ]string1, string2[, compare])
パラメータ 説明
start 検索開始位置(デフォルトは先頭)
string1 検索対象(文字列式)
string2 string1中から検索したい文字列式
compare 文字列比較の種類

※[]内のパラメータは省略可能です。省略するとデフォルトで実行されます。

Sub test()
    
    Dim str As String
    Dim str2 As String

    str = "CASTER"

    str2 = InStr("CASTER","S")

    MsgBox str2  ' 3
    
End Sub

文字列「CASTER」のうち、Sの位置を取得します。
3番目なのでメッセージボックスには3と表示されます。

文字列の変換

Excel/VBAでは、StrConv関数で文字列を変換できます。

StrConv(string, conversion [, LCID])
パラメータ 説明
string 変換する文字列式
conversion 変換の種類を指定(詳細は下記表参照)
LCID 国別情報識別子

※[]内のパラメータは省略可能です。
省略するとデフォルトで実行されます。

conversionの定数 説明
vbUpperCase 大文字に変換
vbLowerCase 小文字に変換
vbProperCase 文字列の各単語の先頭の文字を大文字に変換
vbWide 半角文字を全角文字に変換
vbNarrow 全角文字を半角文字に変換
vbKatakana ひらがなをカタカナに変換
vbHiragana カタカナをひらがなに変換
vbUnicode 文字コードをシステムの既定値からUnicodeに変換
vbFromUnicode 文字コードをUnicodeからシステムの既定値に変換
Sub test()
    
    MsgBox StrConv("abcde",vbUpperCase) ' ABCDE

    MsgBox StrConv("ABCDE",vbLowerCase) ' abcde

End Sub
関連記事
1 【VBA】文字列の変換【Excelマクロ】
2 【VBA】文字列の置換【Excelマクロ】
3 【VBA】文字列の検索【Excelマクロ】
4 【VBA】文字列の処理【Excelマクロ】

【if文】条件分岐

if文とは、条件によって処理を分岐させるのための機能です。
VBA(マクロ)のif文はつぎのように使います。

If 条件式 Then
    条件式が真の場合の処理①
End If

条件式が成立した場合に処理①を実行します。

以下のプログラムだと条件式(xは10である)が正しいです。
よって、if文内部の処理(メッセージボックスに「xは10である」と表示)が実行されます。
尚、条件式を書くときは「比較演算子」を使うことが多いです。

Sub test()
    x = 10
    
    If x = 10 Then
        MsgBox "xは10である"
    End If

End Sub

以下のプログラムだと条件式(xは10でない)が正しくありません。
よって、条件式は偽なので、if文内部の処理(「xは10でない」と表示)が実行されません。

Sub test()
    x = 10
    
    If x <> 10 Then
        MsgBox "xは10でない"
    End If

End Sub

複数の条件分岐(if、elif、else文)

VBA(マクロ)では、「If、ElseIf、Else文」を使うことで1つの条件分岐だけでなく複数の条件分岐を使って処理を分けることが出来ます。

書式

If 条件式① Then
    処理①
ElseIf 条件式② Then
    処理②
Else
    処理③
End If
条件 実行内容
条件式①が成立した場合 処理①を実行
条件式①が不成立 & 条件式②が成立 処理②を実行
条件式①②が不成立 処理③を実行

まず、条件式①が真であれば処理①を実行して終了します。
偽であった場合は、次の条件式②が真であれば処理②を実行して終了します。(以降Elseまで同じ)
ElseIf文の数だけ条件分岐を増やすことが出来ます。
※どれかの条件式が真となった場合はそれ以降のElseif、Else文はスルーされます。

以下のプログラムだと条件式(xは10である)が正しいです。
よって、if文内部の処理(メッセージボックスに「xは10である」と表示)が実行されます。
尚、条件式を書くときは「比較演算子」を使うことが多いです。

Sub test()
    x = 10
    
    If x >= 20 Then
        MsgBox "xは20以上である"
    ElseIf x >= 10 Then
        MsgBox "xは10以上である"
    ElseIf x >= 0 Then
        MsgBox "xは0以上である"
    Else
        MsgBox "xは0未満である"
    End If

End Sub

2つ目の条件式(xは10である)が正しいので、メッセージボックスには「xは10以上である」と表示されます。

関連記事
1 【VBA/マクロ】If文の使い方(条件分岐)
2 【VBA/マクロ】ElseIf文の使い方(複数の条件分岐)

【Select Case文】

Select Case文は、多分岐を行うための選択文です。
評価する対象がすべて同じ場合に使います。

書式① Select Case文は、変数と同じ値を持つCase以下を”全て”実行します。

Select Case 変数
    Case 値①
        「変数 = 値①」である場合の処理
    Case 値②
        「変数 = 値②」である場合の処理
    Case Else
         変数が値①、値②でない場合の処理
End Select

書式② 値を範囲で指定したい場合はToを使います。

Select Case 変数
    Case 値1 To 値2
        変数が値1~値2の範囲内にある場合の処理
    Case 値3 To 値4
        変数が値3~値4の範囲内にある場合の処理
    Case Else
        変数が上記以外の範囲内にある場合の処理
End Select

書式③ 比較演算子と条件式を使う場合はIsを使います。

Select Case 変数
    Case Is 条件1
        変数が条件1を満たす場合の処理
    Case Is 条件2
        変数が条件2を満たす場合の処理
    Case Else
        変数が上記以外の範囲内にある場合の処理
End Select

例①

Sub test()

    x = 10

    Select Case x
        Case 5
            MsgBox "xは5です"
        Case 10
            MsgBox "xは10です"
        Case 15
            MsgBox "xは15です"
    End Select

End Sub

メッセージボックスには「xは10です」と表示されます。

例②

Sub test()

    x = 10

    Select Case x
        Case 5 To 9
            MsgBox "xは5~9です"
        Case 10 To 14
            MsgBox "xは10~14です"
        Case 15 To 19
            MsgBox "xは15~19です"
    End Select

End Sub

メッセージボックスには「xは10~14です」と表示されます。

例③

Sub test()

    x = 10

    Select Case x
        Case Is >= 15
            MsgBox "xは5以上です"
        Case Is >= 10
            MsgBox "xは10以上です"
        Case Is >= 5
            MsgBox "xは15以上です"
    End Select

End Sub

メッセージボックスには「xは10以上です」と表示されます。

関連記事
1 【VBA/マクロ】Select Case文の使い方(複数の条件分岐)

【While文】

While文とは、同じ処理を繰り返しおこなう場合に使います。

書式

While 条件式
    処理
Wend
while文の処理
1 条件式が「真」ならば文を実行します。
2 文の処理が終わると、再び条件式が「真」かどうか調べます。
・真なら手順1に戻ります。
・偽なら反復を終了して次の処理へ進みます。
用語 説明
条件式 関係演算子論理演算子など、結果として論理値が得られる演算を記述します。
条件式を満たしている状態
条件式を満たしていない状態
Sub test()

    i = 1
    
    While i < 5
        MsgBox i
        i = i + 1
    Wend

End Sub

メッセージボックスに「1」「2」「3」「4」と表示されていきます。
iが5になったときに、While内の処理を実行せずに次に進みます。

-- 関連記事
1 【VBA/マクロ】While文の使い方(繰り返し処理)

【Do~While~Loop文】

Do~While~Loop文とは、同じ処理を繰り返しおこなう場合に使います。

書式

Do While 条件式
    処理
Loop
- while文の処理
1 条件式が「真」ならば文を実行します。
2 文の処理が終わると、再び条件式が「真」かどうか調べます。
・真なら手順1に戻ります。
・偽なら反復を終了して次の処理へ進みます。
用語 説明
条件式 関係演算子論理演算子など、結果として論理値が得られる演算を記述します。
条件式を満たしている状態
条件式を満たしていない状態
Sub test()

    i = 1
    
    Do While i < 5
        MsgBox i
        i = i + 1
    Loop

End Sub

メッセージボックスに「1」「2」「3」「4」と表示されていきます。
iが5になったときに、While内の処理を実行せずに次に進みます。

-- 関連記事
1 【VBA/マクロ】Do~While~Loop文の使い方(繰り返し処理)

【For Each文】

For Each文は、配列に対して同じ処理を繰り返すことができます。
よく使うのは、「配列の各要素を順に取り出す」場面です。

For Each 変数 In 配列
    処理
Next

上記がFor Each文の基本的な書式です。
Forが1回実行される毎に「配列」の要素が順に変数に格納されていきます。

Sub test()

    '変数を宣言
    Dim member As Variant
    Dim name As Variant
    
    '配列に3つの要素をまとめて代入
    member = Array("アベンジャー", "バゼット", "カレン")
    
    For Each name In member

        MsgBox name
    
    Next

End Sub

メッセージボックスに配列要素が1つずつ表示されていきます。

-- 関連記事
1 【VBA/マクロ】For Each文で配列要素を順に取り出す

【Exit文】

Exit文は、実行中の処理を途中で抜ける機能です。

Exit 構文名
記述例 説明
Exit Do Do~While文を途中で抜ける
Exit For For文を途中で抜ける
Exit Function Function文を途中で抜ける
Exit Property Property文を途中で抜ける
Exit Sub Sub文を途中で抜ける
Sub test()

    i = 1
    
     Do While i < 5
     
        MsgBox i
        
        i = i + 1
        
        If i = 2 Then
            MsgBox "途中終了"
            Exit Do
        End If
        
    Loop

End Sub

メッセージボックスに「1」「途中終了」と表示されていきます。
iが2になったときに、Exit文でDo Whileから抜け出します。

-- 関連記事
1 【VBA/マクロ】Exit文の使い方(途中で抜ける)

【Subプロシージャ】

Subプロシージャとは、呼び出すプログラムの単位です。
プロシージャの書式は次の通りです。

書式

Sub プロシージャ名()
    処理
End Sub

プロシージャ名は、「英数字」「日本語」などが使えます。
ただし、プロシージャ名の頭文字に数字は使えません。
作成したsubプロシージャは、1つ1つをマクロとして実行できます。

- 実行手順
1 VBEを開きます。
2 [実行]→[Sub/ユーザー フォームの実行]をクリックします。
3 作成したプロシージャ名が表示されます。
(複数のsubプロシージャをエディタに記述した場合は、その数だけ表示)
4 実行したいプロシージャ名を選択して「実行」ボタンをクリックします。
-- 関連記事
1 【VBA/マクロ】Subプロシージャの使い方

【セル操作】範囲選択、アクティブ、クリア、コピペ、データ取得・挿入、行・列・セル数取得、セル名の設定、フォント設定

【Range】セル範囲選択

VBA(マクロ)では、Rangeオブジェクトで操作したい対象のセルを指定できます。
記述方法は次のように色々あります。

Range("A1") 'A1
Range("A1:E5") 'A1~E5
Range("A1,E5") 'A1とE5
Range("A1","E5") 'A1~E5
Range("1:5") '1~5行
Range("A:E") '1~5列
Range(Cells(1, 1)) 'A1セル
Range(Cells(1, 1), Cells(3,2)) 'A1~B3
Range(Rows(1), Rows(5)) '1~5行
Range(Rows(1), Columns(1)) '全範囲
Range(Columns(1), Columns(3)) '1~3列
Range("A1", Cells(3,2)) 'A1~B3
Range("名前定義") '「名前定義」したセル全て
- 関連記事
1 【VBA/マクロ】Rangeオブジェクトでセル指定(複数・行・列・全範囲)

【Select,Active,Clear】選択、アクティブ、クリア(消去)

VBA(マクロ)でセルの「選択」「アクティブ」「クリア(消去)」をするには次のメソッドを利用します。

メソッド 説明
オブジェクト.Select セルを選択状態にする
オブジェクト.Active セルをアクティブ状態にする
オブジェクト.Clear セルをクリア状態にする

※「Rangeオブジェクト」、「Cellオブジェクト」などで対象セルを指定します。

Sub test()

    Range("A1").Select
    Range("A2").Active
    Range("A3").Clear

End Sub
- 関連記事
1 【VBA/マクロ】セルの選択・アクティブ・クリア(消去)

【Copy】コピー・切り取り・貼り付け

VBA(マクロ)でセルの「コピー」「切り取り」「貼り付け」をするには次のメソッドを利用します。

Range("A1").Copy
Range("A2").PasteSpecial (xlPasteAll)

「Copy」メソッドで指定したセルの内容をコピーできます。
もしコピーでなく切り取りも場合は「Cut」メソッドを使います。
また、「PasteSpecial」メソッドでコピーした内容を貼り付けます。
また、引数に入れる定数によって、コピーする内容を細かく設定できます。

定数 説明(貼り付ける対象)
xlPasteAll すべて(デフォルト)
xlPasteFormulas 数式のみ
xlPasteValues 値のみ
xlPasteFormats 書式のみ
xlPasteComments コメントのみ
xlPasteValidation 入力規則
xlPasteAllExceptBorders 罫線を除くすべて
xlPasteColumnWidths 列幅
xlPasteFormulasAndNumberFormats 数式と数値の書式
xlPasteValuesAndNumberFormats 値と数値の書式
xlPasteAllUsingSourceTheme コピー元のテーマを使用してすべて貼り付け
xlPasteAllMergingConditionalFormats すべての結合されている条件付き書式
Sub test()

    ' A1セルの内容をコピー
    Range("A1").Copy

    ' A2セルに貼り付け   
    Range("A2").PasteSpecial (xlPasteAll)

    ' コピーモードを解除
    Application.CutCopyMode = False 

End Sub

CopyやCutで次のようにDistinationを使用すると、Pasteメソッドを省略して貼り付けもできます。

' A1セルをコピーしてA2セルに貼り付け
Range("A1").Copy Distination:=Range("A1")
- 関連記事
1 【VBA/マクロ】セルのコピー・切り取り・貼り付け

【Value】セルに値をセット(挿入)

VBA(マクロ)でセルに値をセット(挿入)するにはValueメソッドを利用します。

Range("A1").Copy
オブジェクト.Value = 値
オブジェクト.Value = "文字列"

※操作対象は「Rangeオブジェクト」「Cellオブジェクト」などを利用します。

Sub test()

    ' A1セルに値をセット
     Range("A1").Value = 0

    ' A2セルに値をセット
    Range("A2").Value = "零"

End Sub
- 関連記事
1 【VBA/マクロ】セルに値をセット(挿入)

【Value,Text】セルに入力されたデータを取得

VBA(マクロ)でデータ(値・文字列)を取得するにはValue,Textメソッドを利用します。

記述例 説明
x = Range("A1").Value 値を取得する場合
y = Range("A2").Text 文字列を取得する場合

※操作対象の設定は「Rangeオブジェクト」「Cellオブジェクト」などを利用して行います。

Sub test()

    ' A1セルの値を取得して変数xに格納
     x = Range("A1").Value

    ' A2セルの文字列を取得して変数yに格納
     y = Range("A2").Value

    MsgBox x
    
    MsgBox y

End Sub

メッセージボックスに「A1セルの値」「A2セルの文字列」が表示されます。

- 関連記事
1 【VBA/マクロ】セルのデータ(値・文字列)を取得

【Count】行数・列数・セル数を取得

VBA(マクロ)で行数・列数・セル数を取得するにはCountメソッドを利用します。

記述例 説明
Range("A1:E5").Cells.Count A1~E5のセル数を取得
Range("A1:E5").Rows.Count A1~E5の行数を取得
Range("A1:E5").Columns.Count A1~E5の列数を取得

※操作対象の設定は「Rangeオブジェクト」「Cellオブジェクト」などを利用して行います。

Sub test()

    ' A1~E5のセル数を取得・表示
    x = Range("A1:E5").Cells.Count
    MsgBox x  ' 25
    
    ' A1~E5の行数を取得
    y = Range("A1:E5").Rows.Count
    MsgBox y  ' 5
    
    ' A1~E5の列数を取得
    Z = Range("A1:E5").Columns.Count
    MsgBox Z  ' 5

End Sub

メッセージボックスにセル数「25」、行数「5」、列数「5」が表示されます。

- 関連記事
1 【VBA/マクロ】行数・列数・セル数を取得

【Row・Column】行・列番号の取得

VBA(マクロ)で行番号・列番号を取得するにはRow・Columnメソッドを利用します。

記述例 説明
Range("A2").Row A2セルの行番号を取得
Range("A2").Column A2セルの列番号を取得

※操作対象の設定は「Rangeオブジェクト」「Cellオブジェクト」などを利用して行います。

Sub test()

    ' A2セルの行番号を取得
    x = Range("A2").Row
    MsgBox x  ' 2
    
    ' A2セルの列番号を取得
    y = Range("A2").Column
    MsgBox y  ' 1


End Sub
- 関連記事
1 【VBA/マクロ】行番号・列番号を取得

【Name】セル名の設定

VBA(マクロ)でセルに名前を設定するにはNameメソッドを利用します。

記述例 説明
Range("A2").Name = 任意の名前 A2セルにセル名を設定

※操作対象の設定は「Rangeオブジェクト」「Cellオブジェクト」などを利用して行います。

Sub test()

    ' A2セルに名前を設定
    Range("A2").Name = "A2セルです"

    ' セル操作(値をセット)
    Range("A2セルです").Value = 10


End Sub

A2セルにセル名「A2セルです」を設定します。
これにより、「A2セルです」でセル操作ができます。

- 関連記事
1 【VBA/マクロ】セルに名前を設定

【Font】フォントの大きさ・種類・スタイル

VBA(マクロ)でフォントの「大きさ」「種類」を変えるには、「Font」プロパティを使用します。

Range("A1").Font.Name = "MS Pゴシック"
プロパティ 説明
Font.Name フォントの種類(MS Pゴシックなど)
Font.Size フォントサイズ(16など)
Font.Bold 太字(Trueなら有り、Falseなら無し)
Font.Color 色(RGB(255, 0, 0)、RGB(0, 255, 0)、vbRed、vbblueなど)
Font.FontStyle 標準、太字、斜体、太字、斜体など
Font.OutlineFont フォントのアウトライン化(Trueなら有り、Falseなら無し)
Font.Italic 斜体(Trueなら有り、Falseなら無し)
Font.Underline 下線(Trueなら有り、Falseなら無し) 下線
Font.Strikethrough 取消線(Trueなら有り、Falseなら無し)
Font.Superscript 上付き文字(Trueなら有り、Falseなら無し)
Font.Subscript 下付き文字(Trueなら有り、Falseなら無し)

■参考:Rangeによるセル指定方法

Sub test()
    ' A1セルに値をセット
    Range("A1").Value = "イシュタル"
    
    ' A1セルの字体
    Range("A1").Font.Name = "MS Pゴシック"
    
    ' A1セルのフォントの種類
    Range("A1").Font.Size = 20

End Sub
- 関連記事
1 【VBA】フォントの大きさ・種類・太さ・下線などのスタイル
- 関連記事
1 【VBA入門】Excelマクロで仕事・作業を自動化
関連記事