月別アーカイブ  [ 2013年06月 ] 

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | TB(-) | CM(-)

とりあえずExcel VBA Tips

Sub Tips()
  Dim i As Long, j As Long, ary, var, tmp
  Dim coll As New Collection, dic As Object

  '■ :(コロン)で区切って1行に複数のステートメントを記入できる

  i = 1: tmp = Array("a001", "a002", "a003"): ary = Array("鈴木", "佐藤", "田中")


  '■ バリアント変数には配列要素を配列で格納できる(ジャグ配列)

  var = Array(tmp, ary)
  MsgBox var(0)(1) 'a002


  '■ Transposeで配列の行列変換ができる

  Range("a1:a2").Value = Application.Transpose(ary)
      'Range("a1:a2").Value = ary ← エラー


  '■ Collectionオブジェクトは動的配列代わりに使用可能

  coll.Add "鈴木": coll.Add "佐藤": coll.Add "佐藤"  '重複可
  MsgBox coll(1)  '鈴木(インデックスは1から)
      'Range("a1:b1").Value = coll ← エラー


  '■ DictionaryオブジェクトのItemには配列を格納できる

  Set dic = CreateObject("Scripting.Dictionary")
  dic.Add "顧客", ary
  MsgBox dic.Item("顧客")(2)  '田中


  '■ Indexで配列の途中から1行(列)単位で取り出せる

  ReDim var(1 To 3, 1 To 2)
  For i = 1 To 3
    var(i, 1) = tmp(i - 1)
    var(i, 2) = ary(i - 1)
  Next
  Cells(3, 1).Resize(, 2) = Application.Index(var, 2, 0) '列=0 ⇒ 行全体
      'a002、佐藤

  Set coll = Nothing
  Set dic = Nothing
End Sub
スポンサーサイト
[ 2013/06/13 21:43 ] その他 | TB(0) | CM(1)
プロフィール

いけぢー

Author:いけぢー
備忘録がメインです。
あとは思いついた内容など。

カレンダー
05 | 2013/06 | 07
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
アクセスカウンター
押さないでください


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。