sironekotoroの日記

Perl で楽をしたい

Excel VBA ベーシック 公式テキスト 6章

復習

  • If 〜 Then 〜 End If 、最後のEnd If 忘れちゃう

6-1 セルの指定

  • Sheet1を操作対象とするときは、Worksheets("Sheet1")とする。
    • Worksheetの集合体の中の、Sheet1

主なセルの指定方法

  • Range

    • 文字列として指定する
      • 固定されたセルの操作向き
    • Range("A1") A1セル
    • Range(“B2:D4”) B2からD4までの範囲
    • Range("A1,B3,C5") A1,B3,C5という連続していない3つのセル
  • Cells

    • 数値で指定する
      • 相対的なセルの操作向き
    • Cells(1,1) 1行1列目、つまり セルA1
    • Cells(4,3) 4行目3列目、つまり セルC4
  • その他

    • ActiveCell
      • そのときアクティブにしているセル
    • Selection
      • セルに限らず、現在洗濯されているオブジェクト
    • CurrentRegion
      • あるセルを含む、連続した範囲
    • UserRange
      • ワークシートで仕様されている範囲

行や列の指定

  • Rows 行全体
    • Rows(3) 3行目
    • Rows(3).Select 3行目全体
  • Columns 列全体
    • Columns(2) 2行目
    • Columns(2).Delete 2列目の削除

ワークシートの指示を省略した場合

  • 正確には、「どこのワークシートのセルか?」を記述する
    • Worksheets("Sheet1").Range(“A1”) シート1のセルA1
  • 省略した場合には以下の指定になる
    • 標準モジュールに記載すると、アクティブシート
    • ワークシートに記述した場合にはそのシート

6-2 覚えておきたいプロパティ

  • Value プロパティ
    • セルに代入されている値を返す
    • アクティブシートのアクティブなセルに100を代入し、B3にVBAという文字列を入れる
Sub Macro1()
Dim i As Long
    ActiveCell.Value = 100
    Range("B3").Value = "VBA"
End Sub
  • Valueプロパティの補足

    • Range規定のプロパティはValueだが、これは規定のプロパティとなるため、省略が可能
    • Range("A1").Value=100Range("A1")=100と同じ
  • Textプロパティ

    • セルに表示されている値を返す
    • 読み取り専用
    • 数式が入っている場合には、数式の計算結果を返す
    • セルに表示設定がされている場合には、その表示形式によって加工された結果を返す
      • 表示形式を#,###0“円”にした場合、セルに数値を入れると数値+円となる
        • 「1234」が「1,234円」と表示される
      • このセルをValueプロパティで変数に入れると数値のみ代入される「1234」
      • Textプロパティを使うと「1,234円」と表示形式込みの文字列が変数に代入される