vba

Excel VBAで配列の長さを取得

VBAには配列の長さを取得するLengthといったメソッドが存在しない。 そもそも配列にメソッドが存在するのかどうかも怪しい。 配列の長さを直接求める関数も存在しないため、以下の関数を利用する。 LBound 配列の最小インデックスを取得 UBound 配列の最大イ…

Excel VBAのDebug.PrintやMsgBoxでは配列を直接出力出来ないらしい

Sub PrintArray() Debug.Print Split("a,b,c", ",") End Sub 上記のプロシージャを実行すると、 実行時エラー '13': 型が一致しません。といったエラーメッセージが表示される。 てっきりSplit関数の指定方法の問題かと思ったが、 どうもDebug.PrintやMsgBox…

Excel VBAでグラフシートをブック内の末尾に追加する方法

直接 Charts.Add After:=Sheets(Sheets.Count) と指定すると何故か最後から2番目に追加される。 よって、一旦適当な位置に追加してから追加されたシートを末尾へ移動してやる。 Sub AddChartsAtTheEndOfSheets() Charts.Add ' 位置を指定せずに追加 ActiveCh…

Excel VBAの変数宣言で嵌った話

VBAの変数宣言では大文字、小文字が区別されない。 そのため、Java等を書いている気分で以下のように書くとおかしなことになる。 Dim activeChart As Chart 一度このように書いてしまうと、 これ以降に何度ActiveChartと書いても全てVBEで"a"ctiveChartに補…

Excel2003でマクロ(VBA)を書くための開発環境の準備

起動 とりあえずExcel VBAを書くにはVBE(Visual Basic Editor)ってのを使えば良いらしい。 Excelを開いてメニューを「ツール→マクロ→Visual Basic Editor」と辿るか、Alt+F11で開ける。 環境設定 最初にいくつか環境設定をしておく。 VBEのメニューからツ…