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