Sub Auto_Open() 'マクロを記述 End Sub
マクロを実行せずに開く場合はShiftキーを押しながら開きます。
Application.CutCopyMode = False
'警告メッセージを非表示にする Application.DisplayAlerts = False '警告メッセージを表示する Application.DisplayAlerts = True
'更新を止める Application.ScreenUpdating = False '更新を再開する Application.ScreenUpdating = True
Workbooks.Add
Dim listName As Name 'リストが存在したら削除 For Each listName In WORKBOOK.Names If listName.Name = "hoge" Then Range("hoge").Name.Delete End If Next listName WORKBOOK.Names.Add Name:="hoge", RefersTo:="=Sheet1!$A$2:$C$10"
名前を付けることについては1行で済みますが、同じ名前が既にあるとエラーになるため、先に削除してから付けるようにします。
WORKBOOK.SaveAs Filename:=ThisWorkbook.Path & "/hoge.xlsx", FileFormat:=xlNormal
ファイル形式 | FileFormatの引数 |
---|---|
xlsx | xlWorkbookDefault |
xlsm | xlOpenXMLWorkbookMacroEnabled |
xls | xlWorkbookNormal |
csv | xlCSV |
txt | xlText |
'指定シートの前 WORKSHEET.Copy Before:="指定シート名" '指定シートの後ろ WORKSHEET.Copy After:="指定シート名"
WORKSHEET.Delete
シート削除時に警告メッセージが表示されるので、ApplicationオブジェクトのDisplayAlertsとセットで使うのが多いです。
WORKSHEET.ExportAsFixedFormat Type:=xlTypePDF, FileName:=ThisWorkbook.Path & "/hoge.pdf"
このメソッドは厳密にはXPS形式でも出力できますが、PDF出力することの方が多いのではないかと思います。
WORKSHEET.PageSetup.CenterHeader = "hoge"
WORKSHEET.PageSetup.FitToPagesTall = 1
WORKSHEET.PageSetup.FitToPagesWide = 1
WORKSHEET.PageSteup.LeftHeader = "hoge"
WORKSHEET.PageSetup.RightHeader = "hoge"
WORKSHEET.PageSetup.Zoom = False
単位%で指定できますが、Falseを指定すると拡大・縮小率を指定しません。
FitToPagesTall オブジェクトとFitToPagesWide オブジェクトと組み合わせて縦横1ページで印刷できる縮小率に設定する時は先にFalseを指定して拡大・縮小率をリセットしておきます。
WORKSHEET.PrintOut ActivePrinter:="プリンタ名"
WORKSHEET.Protect 'マクロ実行時は解除 WORKSHEET.Protect UserInterfaceOnly:=True
WORKSHEET.Unprotect
RANGE.AutoFilter Field:=1, Criteria1:="ほげ"
Fieldで列番号、Criteriaでフィルターをかける条件を指定します。
RANGE.Copy
コピーをした後はApplicationオブジェクトのCutCopyModeメソッドでカットコピーモードを解除します。
'最終行 ''上方向 RANGE.End(xlUp).Row ''下方向 RANGE.End(xlDown).Row '最終列 ''左方向 RANGE.End(xlToLeft).Column ''右方向 RANGE.End(xlToRight).Column
RANGE.FormatConditions.Delete '既に設定されている条件付き書式を削除 With RANGE.FormatConditions.Add(Type:=xlTextString, String:="hoge", TextOperator:=2) .Font.Color = RGB(255, 255, 255) '文字色 .Interior.Color = RGB(255, 0, 0) '背景色 End With
WORKSHEET.ListObjects("テーブル名")
RANGE.Paste
RANGE.PasteSpecial Paste:=xlPasteValues
RANGE.Replace What:="置換前" Replacement:="置換後"
RANGE.Sort Key1:=Range("A2"), order1:=xlAscending, _ '昇順 Key2:=Range("B2"), order2:=xlDescending '降順
With RANGE.Validation .Delete '既に設定されている入力規則を削除 .Add Type:=xlValidateList, Formula1:="hoge,fuga,piyo" .ShowError = False '規則外の入力時のエラー表示 End With
LISTOBJECTS.DataBodyRange
LISTOBJECTS.ListColumns(1) '列の名前から列番号を取得する LISTOBJECTS.ListColumns("列の名前").Index
LISTOBJECTS.ListRows(1)
'セルで指定 ListRowsで行、Rangeで列番号を指定する
LISTOBJECTS.ListRows(1).Range(1)
LISTOBJECTS.Range
LISTBOX.AddItem "hoge"
'使用不可能にする OBJECT.Enabled = False '使用可能にする OBJECT.Enabled = True
USERFORM.Hide
閉じる場合はUnload ステートメントを利用しまが、フォームで取得した値を保持できません。保持したい場合はこのHide メソッドを使います。
USERFORM.Left = 300
LISTBOX.ListCount
LISTBOX.ListIndex
LISTBOX.RowSource = RANGE
USERFORM.Show
'フォームを開いている間も操作可能にする
USERFORM.Show vbModeless
USERFORM.StartUpPosition = 0
0 | 指定しない |
1 | USERFORMが属する項目の中央 |
2 | 画面全体の中央 |
3 | 画面の左上隅 |
USERFORM.Top = 300
Unload OBJECT
オブジェクト全般に使用しますが、フォームを閉じる時に登場します。
DateAdd("d", 1, DATE)
第1引数には下記の内どの値を計算するか、第2引数は加算する数値を入れます。
第1引数 | 内容 |
---|---|
yyyy | 西暦 |
m | 月 |
d | 日 |
h | 時 |
n | 分 |
s | 秒 |
q | 四半期 |
y | 通年での日数 |
ww | 週 |
Format(DATE, "yyyymmdd") '1990/7/3 から 19900703
InputBox("値を入力")
引数には入力ボックスに表示する文字列を指定します。
LCase("Hoge") 'hoge
MsgBox("OKで続行、キャンセルで中止", vbOKCancel)
第2引数に表示するボタンを指定でき、Long型の変数(変数名は「rc」が慣例?)にどのボタンを押したかを格納できます。
StrConv("ほげホゲHoge", vbNarrow) 'ほげホゲHoge
UCase("Hoge") 'HOGE