ExcelVBAへの道
 
第9章 その他

  • 相対参照
    相対参照で記録したコードが下です。このコードの説明をします。
    Sub Macro2()
    '
    ActiveCell.Offset(-19, -1).Range("A1").Select
    ActiveCell.FormulaR1C1 = "1111"
    ActiveCell.Offset(3, 0).Range("A1").Select<====このRange("A1").Selectは現在のセルを基点(A1)とするという意味です。
    ActiveCell.FormulaR1C1 = "22222"<=====FormulaR1C1はR1C1形式で表現している。マクロ記録するとR1C1形式になる。FormulaR1C1プロパティで記録される。
    ActiveCell.Offset(2, 2).Range("A1").Select
    ActiveCell.FormulaR1C1 = "33333"
    ActiveCell.Offset(3, 2).Range("A1").Select
    ActiveCell.FormulaR1C1 = "AAAAA"
    ActiveCell.Offset(3, -2).Range("A1").Select
    ActiveCell.FormulaR1C1 = "BBBBB"
    ActiveCell.Offset(3, -2).Range("A1").Select
    ActiveCell.FormulaR1C1 = "CCCC"
    ActiveCell.Offset(1, 0).Range("A1").Select
    End Sub
ActiveCell.Formula="B3"<===========A1参照形式を使うときにはFormulaを使う。
ActiveCell.FormulaR1C1="R3C2"<===========R1C1参照形式はR1C1形式の数式・セルの取得のときに使う。
  • 絶対参照
    絶対参照で記録したコード。
    Sub Macro1()
    '
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "111111"
    Range("B4").Select
    ActiveCell.FormulaR1C1 = "22222"
    Range("D6").Select
    ActiveCell.FormulaR1C1 = "33333"
    Range("F9").Select
    ActiveCell.FormulaR1C1 = "AAAAAA"
    Range("D12").Select
    ActiveCell.FormulaR1C1 = "BBBBB"
    Range("B15").Select
    ActiveCell.FormulaR1C1 = "CCCC"
    Range("B16").Select
    End Sub

メソッド・プロパティ
メソッド プロパティ
Application GetOpenFilename ActiveCell
Quit ActiveSheet
Activeworkbook
Left
Top
Workbooks Add Count
Open
OpenText
Close
Save
Close
Workbook Save ActiveSheet
Close
Worksheet Protected
Copy
Delete
Range Activate Areas
AutoFilter Cells
Clear Column
Find Count
Select CurrentRegion
SpecialCells End
EntireColumn
EntireRow
Font
Formula
FormulaR1C1
Offset
Range
Row
Value
Worksheets Count

メソッド一覧 (Excel2000のヘルプ参考)詳しくはヘルプ参照すること。
1 ActivateWizard Office アシスタント ウィザードをコントロールする。
2 Add オブジェクトをコレクションに追加する。
各コレクションにより引数が違う。
With ActiveDocument.CustomDocumentProperties    
.Add Name:="
ユーザー設定の番号"

Set myControl = myBar.Controls.Add(Type:=msoControlComboBox, Id:=1)
3 AddItem コンボボックスコントロールにアイテムを追加する。 With myControl    
.AddItem "1
番目の項目", 1    
.AddItem "2
番目の項目", 2
4 Clear コンボボックスコントロールのアイテムを削除する。 If myControl.ListCount < 3 Then    
myControl.Clear
5 ClearFileList アンサーウィザードのリストをクリアする。 customAnswerWizard.ClearFileList
初期化にしようする。
6 Close バルーンを閉じる。 bln.Close
7 Copy コマンドバーコントロールをコマンドバーに追加する。 With myControl    
.Copy Bar:=myCustomBar, Before:=1    
.SetFocus End With
8 CopyFace ボタンイメージをクリップボードにコピーする。
Set myControl = _
CommandBars.FindControl_
(Type:=msoControlButton, Id:=23)
myControl.CopyFace
Set myControl = _
CommandBars.FindControl_
(Type:=msoControlButton, ID:=2)
myControl.PasteFace
9 Delete オブジェクトを削除 bar.Delete
10 EndWizard ウィザードを終了する。
Assistant.EndWizard WizardId:=lHelpForWiz, _
    varfSuccess:=True, 
Animation:=msoAnimationGoodbye
11 Execute
12 FindControl
13 FindControls
14 Help
15 LoadFromFile
16 Move
17 NewSearch
18 Open HTML プロジェクト アイテムを Microsoft Script Editor で開く
19 PasteFace
20 RefreshDocument
21 RefreshProject
22 ReleaseFocus
23 Remove
24 RemoveItem
25 Reset
26 ResetFileList
27 ResetTips
28 SaveCopyAs
29 SetAvoidRectangle
30 SetFocus
31 Show
32 ShowPopup
33 StartWizard
34 State
35 Update

VBAでつかえる関数
文字操作 Left
Right
Mid 指定された文字数分の文字列を返す。
Len 文字の長さ
InStr 前方検索した文字列が何文字目か数値で返す
InStrRev 後方検索で文字列の先頭を数値で返す
Lcase アルファベットの大文字を小文字に
Ucase アルファベットの小文字を大文字に
StrConv 指定した方法で文字列を変換する。
日付時刻 Date
Time
Now
Year
Month
Day
Hour
DateAdd 基準日に加算した日付を返す。
DateDiff 2つの指定した日付の間隔を返す。
書式 Format
FormatCurrency 通貨形式
FormatDateTime 日付・時刻形式
FormatNumber 数値形式
FormatPercent パーセント形式
配列操作 Join 文字列を結合する
Split 文字列を分割する
Filter 指定文字列を取り出す。
変換処理 Cbyte バイト型に変換する
Ccur 通貨型に変換する
Cdate 日付型に変換する
IsDate 指定された値が日付型に変換できるかどうかTrue.Falseで返す。
IsNumber 数値かどうか返す。
IsObject オブジェクトかどうか返す。
IsEmpty
IsError
IsMissing 省略可能な変数がプロシージャに渡されたかチェック
IsNull Null値が含まれているかチェック
IsArray 変数が配列かチェック
StrConv関数の第2引数
vbUpperCase 大文字に変換
vbLowerCase 小文字に変換
vbProperCase 先頭を大文字に変換
vbWide 半角を全角に
vbNarrow 全角を半角に
vbKatakana ひらがなをカタカナに
vbHiragane カタカナをひらがなに
vbUnicode Unicodeに変換
vbFormUnicode Unicodeからコードページに変換

Replace(置き換え元,検索文字列,置き換え文字列,開始位置,置き換え回数,比較モード)

数式の入力
Range("A1")=Range("C1").Formula 'Formulaで数式を入力できる
Range("A1")=Range("C2").Value '値を入力できる

標準モジュールコードをVBAコントロールボタンで実行
標準モジュールにあるプロシージャ(コード)をコントロールボックスにあるコントロールボタンから実行さすには、標準モジュールにあるプロシージャ名(コード名)をコード中に書くことで利用実行できます。
こうすると共通コードをVBAのコーンとロールボタンから実行さすことができる。