Last Modified: <%LastModified%>

Sc588(2) 情報科学特論 資料 

 

Excelマクロとは


Excelマクロでできること


Excelマクロの記述

[Public] Sub プロシージャ名()

    ステートメント

    

End Sub

オブジェクトの表現と操作

プロパティはオブジェクトの属性を表わし,何らかの値を取る. メソッドはオブジェクトに対する操作である. メソッドを実行した結果は,値を持つことも持たないこともある.
〔詳細はここを参照のこと〕

ワークシートの表現と操作

対象/操作表現備考
ワークシートの表現 (<sheet>)
選択されているワークシート ActiveSheet  
特定の名前のワークシート Sheets(<ワークシート名>) <ワークシート名>: 文字列
例: Sheets("Sheet1")
ワークシート関係のプロパティ(P)とメソッド(M)
ワークシートの名前 (P) <sheet>.Name 例: Activesheet.Name
ワークシートの選択 (M) <sheet>.Select 例: Sheets("Sheet1").Select
<sheet>.Activate 例: Sheets("Sheet1").Activate
ワークシートの追加 (M) Worksheets.Add <sheet> <sheet>の直前に新しいワークシートが追加され, それが選択される.
ワークシートのコピー (M) <sheet1>.Copy <sheet2> <sheet2>の直前に<sheet1>のコピーが追加され,それが選択される.
例: Activesheet.Copy(ActiveSheet)
ワークシートの削除 (M) <sheet>.Delete 例: Activesheet.Delete

セルの表現と操作

対象/操作表現備考
セルの表現 (<cell><range>)
(選択されているワークシートの)
選択されているセル
ActiveCell  
(選択されているワークシートの)
特定のセル
Cells(<行>,<列>) <行>, <列>: 1以上
例: Cells(1,2)
Range(<A1形式>) <A1形式>: 文字列
例: Range("B1")
あるワークシートの特定のセル <sheet>.Cells(<行>,<列>) <行>, <列>: 1以上
例: Sheets("Sheet1").Cells(1,2)
<sheet>.Range(<A1形式>) <A1形式>: 文字列
例: Sheets("Sheet1").Range("B1")
あるセル(セル範囲の左上角)から
相対的に指定されるセル
<range>.Cells(<行>,<列>) <range>.Cells(1,1)<range>
(の左上角)と同じセル
例: ActiveCell.Cells(1,2)
<range>.Range(<A1形式>) <range>.Range("A1")<range>
(の左上角)と同じセル
例: ActiveCell.Range("B1")
セルのプロパティ(P)とメソッド(M)
セルを表わす文字列 (P) <cell>.Address(<行$>,<列$>) <行$>, <列$>True が絶対参照($つき), False が相対参照($なし)
例: Range("B102").Address(False,True) → "B$102"
<cell>.Address
[….Address(True,True)の略]
セルの行位置 (P) <cell>.Row 1からカウントする
例: ActiveCell.Row
セルの列位置 (P) <cell>.Column 1からカウントする
例: ActiveCell.Column
セルの値 (P) <cell>.Value 数式の場合は,計算した結果となる
例: Range("A2").Value
セルの数式 (P) <cell>.Formula 通常の表示形式
例: Range("A2").Formula
<cell>.FormulaR1C1 R1C1形式
例: Range("A2").FormulaR1C1
セルの表示文字列 (P) <cell>.Text 書式設定にしたがった表示文字列
例: Range("A2").Text
セルの選択 (M) <cell>.Select 選択されたワークシート上でのみ可能
例: Range("B2").Select
セル内容の消去 (M) <cell>.Clear 例: Range("B2").Clear

セル範囲の表現と操作

対象/操作表現備考
セル範囲の表現 (<range>)
(選択されているワークシートの)
選択されているセル範囲
Selection  
(選択されているワークシートの)
特定のセル範囲
Range(<A1形式>) 例: Range("A1:E16")
行・列は"1:1","A:A","1:2","A:B"のように表わす
Range(<cell>,<cell>) 左上と右下のセル表現を与える
例: Range(Cells(1,1),Cells(16,5))
あるワークシートの
特定のセル範囲
<sheet>.Range(<A1形式>)  
<sheet>.Range(<cell>,<cell>)  
あるセル(セル範囲の左上角)から
相対的に指定されるセル範囲
<range>.Range(<A1形式>)  
<range>.Range(<cell>,<cell>)  
セル範囲内の特定の行 <range>.Rows(<行>) <行>: 1以上
例: Selection.Rows(1)
セル範囲内の特定の列 <range>.Columns(<列>) <列>: 1以上
例: Selection.Columns(1)
あるセル(セル範囲)を含む
表の範囲
<range>.CurrentRegion例: ActiveCell.CurrentRegion
セル範囲のプロパティ(P)とメソッド(M)
セル範囲を表わす文字列 (P) <cell>.Address(<行$>,<列$>) <行$>, <列$>True が絶対参照($つき), False が相対参照($なし)
例: Range("A1:E16").Address → "$A$1:$E$16"
<cell>.Address
[….Address(True,True)の略]
セル範囲内のセル数 (P) <range>.Count 例: Selection.Count
セル範囲内の行数 (P) <range>.Rows.Count 例: Selection.Rows.Count
セル範囲内の列数 (P) <range>.Columns.Count 例: Selection.Columns.Count
セル範囲の選択 (M) <range>.Select 選択されたワークシート上でのみ可能
例: Range("A1:B101").Select
セル範囲の内容のコピー (M) <range1>.Copy <range2> <range1>の内容を<range2>にコピーする
例: Range("A1:B2").Copy Range("C1")
セル範囲の内容の消去 (M) <range>.Clear 例: Range("A1:B101").Clear
行・列の挿入 (M) <range>.Insert <range>の直前に挿入する
例: Range("1:1").Insert
行・列の削除 (M) <range>.Delete 例: Range("A:A").Delete
セル範囲の操作
セル範囲内の全てのセルを操作
Dim cell As Range

    :

For Each cell In <range>

  <cellへの操作>

  

Next cell
<range>内の各セルが順にcellに代入され,<cellへの操作>が繰り返し実行される
セル範囲内の全ての行を操作
Dim row As Range

    :

For Each row In <range>.Rows

  <rowへの操作>

  

Next row
<range>内の各行が順にrowに代入され,<rowへの操作>が繰り返し実行される
セル範囲内の全ての列を操作
Dim column As Range

    :

For Each column In <range>.Columns

  <columnへの操作>

  

Next column
<range>内の各列が順にcolumnに代入され,<columnへの操作>が繰り返し実行される

変数


制御ステートメント

参考

フォーム・フォーム部品(コントロール)


三浦欽也 (miura@mail.kobe-c.ac.jp), 三浦研究室