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でいう抽出。
文字列を比較する。CompareTo()より早い? EXACT("red","blue") = FALE EXACT(A1,B2) = TRUE
文字列を連結する。VBAで&で結合するより早い?
空白列かどうか調べるのに使える
数値を書式設定した文字列に変換する。 TEXT(2715,"\#,##0") = "\2,715"
文字列を数値に変換する。
文字列を検索する。
指定した範囲から任意のセルを検索する。 VLOOKUP(B2,Sheet2!A2:F16,2,FALSE) シート2のA2:AFの範囲からB2と同じ値のセルの値を取得
指定した範囲から任意のセルの位置を検索する。 MATCH(B3,Sheet2!A3:A16,0)
範囲の末端のセルを取得する。 Selection.End(xlDown) '選択しているセルから一番下まで。 Range(A10).End(xlTop) 'A10から上まで。 Ctrl押しながら方向キーを押したときの操作ですね。これで範囲が取得できます。
相対参照。 Sheet1.Range("C1").Offset(1, 1).Select 'C1セルから下に1右に1のセルを選択
数式を設定する。 Sheet1.Range("C1").FormulaR1C1 = "=RC[2]C[-1]" '=$B$1" Sheet1.Range("C1").FormulaR1C1 = "=R2C1" '=B1