エクセルVBA


基本

  • Application
  • Workbooks
  • Worksheets
  • Range
Sheet1.Cells()       '全てのセル
Sheet1.Cells(1,1)    'セルA1ひとつ
Sheet1.Rows(1)       '行1
Sheet1.Columns(1)    '列1(A)
Sheet1.Range("A1")   'セルA1ひとつ(文字列参照) [相対参照]
Sheet1.Range("$A$1") 'セルA1ひとつ(文字列参照) [絶対参照]
Sheet1.Range("A:A")  '列A(文字列参照)
Sheet1.Range(Sheet1.Cells(1, 1), Sheet1.Cells(2, 2)) '範囲指定
Sheet1.Cells(1,1).Range("A1") 'セル(1,1)からの相対範囲

ワークシート関数

ワークシート関数は実行速度が速いので変にプログラムを組もうとしない事。
セル、シート、ブックは変数として使う。
フィルタはSQLでいう抽出。

  • EXACT
    文字列を比較する。CompareTo()より早い?
    EXACT("red","blue") = FALE
    EXACT(A1,B2) = TRUE
  • CONCATENATE
    文字列を連結する。VBAで&で結合するより早い?
  • COUNTA, COUNTBLANK、COUNTIF
    空白列かどうか調べるのに使える
  • TEXT
    数値を書式設定した文字列に変換する。
    TEXT(2715,"\#,##0") = "\2,715"
  • VALUE
    文字列を数値に変換する。
  • FIND
  • SEARCH
    文字列を検索する。
  • VLOOKUP
  • HLOOPUP
    指定した範囲から任意のセルを検索する。
    VLOOKUP(B2,Sheet2!A2:F16,2,FALSE) シート2のA2:AFの範囲からB2と同じ値のセルの値を取得
  • MATCH
    指定した範囲から任意のセルの位置を検索する。
    MATCH(B3,Sheet2!A3:A16,0)

範囲

  • End(方向)
    範囲の末端のセルを取得する。
    Selection.End(xlDown) '選択しているセルから一番下まで。
    Range(A10).End(xlTop) 'A10から上まで。
    Ctrl押しながら方向キーを押したときの操作ですね。これで範囲が取得できます。
  • Offset
    相対参照。
    Sheet1.Range("C1").Offset(1, 1).Select  'C1セルから下に1右に1のセルを選択
  • Resize
  • FormuraR1C1
    数式を設定する。
    Sheet1.Range("C1").FormulaR1C1 = "=RC[2]C[-1]"    '=$B$1"
    Sheet1.Range("C1").FormulaR1C1 = "=R2C1"          '=B1

メニュー

最新の10件

2007-11-28 2007-12-02 2012-07-15 2011-06-30 2011-04-01 2010-08-27 2010-08-10 2010-08-03 2010-07-01 2010-03-03

  • counter: 931
  • today: 1
  • yesterday: 0
  • online: 1