Skip to content

VBA

一、データ型と変数

  1. よく使うデータ型:
    • Byte:バイト型。0〜255。
    • Integer:整数型。整数値を保存します。範囲は -32768 から 32767 です。
    • Long:長整数型。より大きい範囲の整数を保存できます。範囲は -2147483648 から 2147483647 です。
    • Double:倍精度浮動小数点数。小数を持つ数値を表し、精度が高いです。
    • String:文字列型。テキスト情報を保存し、"Hello World" のようにダブルクォートで囲みます。
    • Boolean:ブール型。TrueFalse の二つの値だけを持ち、条件判断でよく使います。
    • Variant:任意型。

データ型

  1. 変数宣言:
    • Dim キーワードを使います。例:Dim num As Integer は、num という Integer 型変数を宣言します。1 行で複数の変数を宣言することもできます。例:Dim a As String, b As Double

二、制御文と演算子

  • 演算子は Java と似ていますが、いくつか特殊なものがあります。
txt
算術演算子
2^3 2の3乗

' 商の整数部分
5\2 = 2

' 余りを取る Mod
12 Mod 9 = 3


比較演算子
' 二つのオブジェクトが同じか比較
オブジェクト1 Is オブジェクト2 

' Like は二つの文字列が一致するか比較
' ワイルドカード
* 任意の複数文字
? 任意の一文字
# 任意の一つの数字

[charlist] charlist 内の任意の一文字
[!charlist]


テキスト演算子
+ 文字列を連結
& 文字列を結合


論理演算子
And Or Not 

Xor 排他的論理和
Eqv 同値
Imp 含意

実行順序: 算術、比較、論理

  • If 文
txt
If 条件 Then
    真の場合
Else
    それ以外
End If ` 終了
  • For ループ
txt
For i = start To end
    ` ループ部分
Next i
  • Select Case
txt
Select Case 値 

    Case is 条件1
    Case is 条件2
	...
	Case Else ` 上の条件に一致しない

End Select
  • コレクションを走査する
txt
For Each 変数 in コレクション名

Next 変数
  • Do While ループ
txt
Do While ループ条件

' ループを抜ける
exit do


Loop
txt
Do

Loop While ループ条件

三、Sub と Function

  1. Sub

定義と役割:Sub は特定のタスクを行うコードブロックで、戻り値を返しません。通常は一連の操作を実行するために使います。

txt
Sub サブルーチン名([パラメータリスト])

End Sub
  1. Function

定義と役割:Function は特定の計算を行い、値を返します。数式や条件判断などで呼び出せます。

txt
Function 関数名([パラメータリスト]) As 戻り値型
    関数名 = 戻り値
End Function
  1. 組み込み関数
関数名機能説明
IsNumericパラメータ内のデータが数値か判断します
IsDateパラメータ内のデータが日付か判断します
IsEmptyパラメータ内のデータが Empty(空)か判断します
IsArrayパラメータが配列か判断します
IsErrorパラメータがエラー値か判断します
IsNullパラメータに有効なデータが含まれていないか判断します
IsObjectパラメータがオブジェクトか判断します
Intパラメータ以下の最初の整数を返します
Fixパラメータの整数部分を返します
Round四捨五入した値を返します
Sqr数値の平方根を返します
Abs数値の絶対値を返します
Rnd0〜1 の乱数を生成します
  1. テキスト関数
関数名機能説明
Lenパラメータ内のデータに含まれる文字数を求めます
LeftRightMidそれぞれ左端、右端、任意位置から指定数の文字を切り出します
LtrimRtrimTrimそれぞれ左端、右端、左右両端の余分な空白を削除します
UcaseLcase英字を大文字、小文字に変換します
InStr指定文字列が別の文字列内にある位置を探します
Replace文字列内の一部を新しい文字へ置換します
Formatパラメータで指定したデータをフォーマットします
  1. 日時関数
関数名機能説明
NowDateTime関数実行時のコンピュータのシステム日付、時刻データを返します
Timer午前 0 時から関数実行時までの秒数を返します
DateSerialパラメータ指定の年、月、日で日付データを返します
YearMonthDayパラメータ指定の日付から年、月、日情報を返します
TimeSerialパラメータ指定の時、分、秒で時刻データを返します
HourMinuteSecondパラメータ指定の時刻から時、分、秒情報を返します
Format日付データの形を持つ文字列を日付データへ変換します
DateValue時刻データの形を持つ文字列を時刻データへ変換します
DateDiff二つの日付の間隔を求めます
  1. データ変換関数
関数名機能説明
Valパラメータ指定のデータを数値型へ変換します
CLng
CInt
CByte
CDblパラメータ指定のデータを Double 型へ変換します
CStrパラメータ指定のデータを String 型へ変換します
CDateパラメータ指定のデータを Date 型へ変換します
CBoolパラメータ指定のデータを Boolean 型へ変換します
CVarパラメータ指定のデータを Variant 型へ変換します

四、Excel オブジェクトモデル操作

  1. Workbook
  2. Worksheet
  • 新しいワークシートを作成する
txt
workshets.add
  • シート名を取得する
txt
Sheets.Name
  • シート数を取得する
txt
Sheets.Count
  1. セル(Range)
  • セルに値を設定する
txt
Range("A1").Value = "値"

連続選択: "A1:B10" は A1 から B10 まで連続です。 不連続選択: "A1,B10" は A1 と B10 です。

  • 行番号と列番号で単一セルを参照する
txt
sells(行,列)
' 行は数字でなければならず、列は数字でも A でもよい
  • 行を選択する
txt
rows(行号).select

' 連続して使うこともできる
rows(3:10).rows(1)  `3行目から10行目の中の1行目を表す
txt
columns
  • セルの相対セルを選択する
txt
offset
Range("A1").Offset(5,0)  `A1 から下へ5、右へ0移動することを表す
' 負数は反対方向を表す
  • 行または列の最後のセルを取得する
txt
End(xlUp)
`選択できる値:xlToLeft、xlToRight、xlUp、xlDown
  • セル書式
txt
セル範囲を変数へ保存する
Set
例:set title = range("B2;G2")

セルを結合する
title.Merge

水平中央揃え
HorizontalAlignment = xlCenter

フォントサイズ
Font.Size = 12

フォント色
Font.ColorIndex = 1

太字
Font.Bold = true

セル内部
Range.Interior

セル背景色
Interior.ColorIndex

罫線
Borders.LineStyle = true

フォント色図

Released under the MIT License.