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のコーンとロールボタンから実行さすことができる。
|