2012年12月23日日曜日

[ExcelVBA] 配列の値をループを使わずに計算する


アドベントカレンダー 23日目

CSVなんかでデータを取得して合計値でも求めたいなぁ
なんてことはまれにあるとおもいますが、
ループでぐるぐる回して合計値を出すのはちょっと面白みにかけるので
こんな方法はどうですか?
という小ネタです。
(ネタですよ・・・)
  1. Option Explicit  
  2.   
  3. Sub SampleCode()  
  4.     Dim Data As Variant  
  5.   
  6.     'データは何かしらの方法で受け取るとして…ここではArrayで作っちゃいます  
  7.     Data = Array(30, 29, 58, 38, 10, 38, 26, 65, 93)  
  8.   
  9.     '足し算をする  
  10.     Debug.Print Evaluate(Join(Data, "+"))  
  11. End Sub  

足し算記号で配列をJoinして
" 30+29+58+38+10+38+26+65+93"
という文字列を作り上げ、Evaluateで文字列を評価してあげるだけです。

単にEvaluateを使いたかっただけなんですけどねぇ…

ちなみに、Evaluate関数は
Evaluate("A1")でアクティブのA1の値を取得します。
特に使い道はないですね。

0 件のコメント: