excel

Excelで直前の行(列)までの合計値を行(列)の挿入を反映して計算する

上図のようなExcel表でE列の累計値を求める場合、通常は以下のように設定すると思う。 =SUM(E3:E5)ところが、これだと途中に行を挿入された場合に 押し出された行(上の例だとE6)が計算に入らなくなってしまう。 そこで上図のように、累計用のセルに以下の…

Excelで数値の桁数を指定する関数

セルの中に数値だけ入れるなら書式設定で出来るけど、 文字列とつなげたい場合などはそれだと対応できないので。 ↓単純に計算すると小数部分まで全部表示。 ↓ROUNDDOWN関数を使用。指定した桁数まで残して小数部分を切り捨ててくれる。 四捨五入するならROUN…

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のメニューからツ…