教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 関数】LBound関数で配列の下限値を調べる方法を教えて!

f:id:m_kbou:20211224102807p:plain

 

 

構文

記述方法は以下の通りとなります。

(1)配列が一次元の場合

LBound([一元配列])

[説明]:

指定した一次元配列の行下限値(インデックス番号)を返します。

f:id:m_kbou:20211229140813p:plain

[記述例]:

LBound(配列)

(2)配列が二次元の場合

LBound([二次元配列],[次元数])

[説明]:

指定した二次元配列の行又は列の下限値(インデックス番号)を返します。

f:id:m_kbou:20211229140834p:plain

[記述例]:

LBound(二次元配列,1)
LBound(二次元配列,2)

 

使い方

使い方について具体的に説明します。

一次元配列での行下限値を調べる方法

一次元配列での行下限値を調べる方法について説明します。

[プログラミング例①]:

Option Baseを使用して配列の下限値(インデックス番号)を「0」にした場合

Option Base 0

Sub サンプル()

  Dim 配列(3) As String

  MsgBox LBound(配列)

End Sub

「Option Base 0を指定します。サンプルプロシージャの中に一次元配列:配列(3)を定義し、LBound関数を使用して行下限値MsgBoxで表示して下さい。」との意味になります。(※Option Base 0は、配列の下限値(インデックス番号)を0スタートとします。)

f:id:m_kbou:20211224102839p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例①]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20211224102850p:plain

②結果は以下の様に表示されます。下限値を0とする指定をしたため、MsgBoxで「0」が表示されます。

f:id:m_kbou:20211224102901p:plain

[サンプル①]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

[プログラミング例②]:

Option Baseを使用して配列の下限値(インデックス番号)を「1」にした場合

Option Base 1

Sub サンプル()

  Dim 配列(3) As String

  MsgBox LBound(配列)

End Sub

「Option Base 1を指定します。サンプルプロシージャの中に一次元配列:配列(3)を定義し、LBound関数を使用して行下限値MsgBoxで表示して下さい。」との意味になります。(※Option Base 1は、配列の下限値(インデックス番号)を1スタートとします。)

f:id:m_kbou:20211224103438p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例②]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20211224103450p:plain

②結果は以下の様に表示されます。下限値を1とする指定をしたため、MsgBoxで「1」が表示されます。

f:id:m_kbou:20211224103500p:plain

[サンプル②]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

一次元配列での行下限値を調べる方法についての説明は以上です。

 

二次元配列での行下限値を調べる方法

二次元配列での行下限値を調べる方法について説明します。

[プログラミング例①]:

Option Baseを使用して配列の下限値(インデックス番号)を「0」にした場合

Option Base 0

Sub サンプル()

  Dim 二次元配列(3, 5) As Variant

  MsgBox LBound(二次元配列, 1)

End Sub

「Option Base 0を指定します。サンプルプロシージャの中に二次元配列:二次元配列(3, 5)を定義し、LBound関数を使用して行下限値MsgBoxで表示して下さい。」との意味になります。(※Option Base 0は、配列の下限値(インデックス番号)を0スタートとします。)

f:id:m_kbou:20211224133502p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例①]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20211224133517p:plain

②結果は以下の様に表示されます。下限値を0とする指定をしたため、MsgBoxで「0」が表示されます。

f:id:m_kbou:20211224133537p:plain

[サンプル①]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

[プログラミング例②]:

Option Baseを使用して配列の下限値(インデックス番号)を「1」にした場合

Option Base 1

Sub サンプル()

  Dim 二次元配列(3, 5) As Variant

  MsgBox LBound(二次元配列, 1)

End Sub

「Option Base 1を指定します。サンプルプロシージャの中に二次元配列:二次元配列(3, 5)を定義し、LBound関数を使用して行下限値MsgBoxで表示して下さい。」との意味になります。(※Option Base 1は、配列の下限値(インデックス番号)を1スタートとします。)

f:id:m_kbou:20211224135153p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例②]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20211224135232p:plain

②結果は以下の様に表示されます。下限値を1とする指定をしたため、MsgBoxで「1」が表示されます。

f:id:m_kbou:20211224135243p:plain

[サンプル②]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

二次元配列での行下限値を調べる方法についての説明は以上です。

 

二次元配列での列下限値を調べる方法

二次元配列での列下限値を調べる方法について説明します。

[プログラミング例①]:

Option Baseを使用して配列の下限値(インデックス番号)を「0」にした場合

Option Base 0

Sub サンプル()

  Dim 二次元配列(3, 5) As Variant

  MsgBox LBound(二次元配列, 2)

End Sub

「Option Base 0を指定します。サンプルプロシージャの中に二次元配列:二次元配列(3, 5)を定義し、LBound関数を使用して列下限値MsgBoxで表示して下さい。」との意味になります。(※Option Base 0は、配列の下限値(インデックス番号)を0スタートとします。)

f:id:m_kbou:20211224135902p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例①]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20211224133517p:plain

②結果は以下の様に表示されます。下限値を0とする指定をしたため、MsgBoxで「0」が表示されます。

f:id:m_kbou:20211224133537p:plain

[サンプル①]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

[プログラミング例②]:

Option Baseを使用して配列の下限値(インデックス番号)を「1」にした場合

Option Base 1

Sub サンプル()

  Dim 二次元配列(3, 5) As Variant

  MsgBox LBound(二次元配列, 2)

End Sub

「Option Base 1を指定します。サンプルプロシージャの中に二次元配列:二次元配列(3, 5)を定義し、LBound関数を使用して列下限値MsgBoxで表示して下さい。」との意味になります。(※Option Base 1は、配列の下限値(インデックス番号)を1スタートとします。)

f:id:m_kbou:20211224140234p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例②]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20211224135232p:plain

②結果は以下の様に表示されます。下限値を1とする指定をしたため、MsgBoxで「1」が表示されます。

f:id:m_kbou:20211224135243p:plain

[サンプル②]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

二次元配列での列下限値を調べる方法についての説明は以上です。

 

プログラミング(サンプル)

プログラミング事例を紹介します。

www.osiete-excelvba.work

 

おわりに

今回はLBound関数を使用した配列の下限値を調べる方法について説明しました。動的配列やOption Baseを使用している場合等では、下限値を把握しておく事で正しい処理が実行できます。是非活用してみて下さい。また、類似の内容として配列の上限値を調べる方法もあります。こちらも参考にしてみて下さい。