変数の宣言強制
Option Explicit
オプションで設定すると自動的に入力されるようになる
ファイル操作
パスを指定しない場合はカレントディレクトリが基準になる
操作 | コマンド | 備考 |
---|---|---|
カレントディレクトリ移動 | ChDir "C:\Sample" | なければエラー |
フォルダ作成 | MkDir "C:\Sample" | 既にあればエラー |
ファイルコピー | FileCopy "C:\コピー元.txt", "C:\コピー先.txt" | 既にあれば上書き |
ファイル削除 | Kill "C:\Sample.txt" | なければエラー |
ファイル名取得 | Dir("C:\Tmp\Sample.txt") | 例はSample.txt |
'ファイル存在確認 If Dir(Target) <> "" Then Workbooks.Open Target Else MsgBox "ファイルが存在しません" End If
ブック操作
※Thisはアドインで使わないこと
操作 | コマンド | 備考 |
---|---|---|
ブック取得 | Workbooks("Sample.xlsx") Workbooks(1) ActiveWorkbook ThisWorkbook |
ブック名 インデックス アクティブ 処理実行ブック |
開く | Workbooks.Open ("C:\Sample.xlsx") | 既に開いていてもエラーにならない |
閉じる | Workbooks("Sample").Close SaveChanges:=False | 保存しない |
アクティブ | Workbooks("Sample").Activate | 拡張子不問 |
名前取得 | ActiveWorkbook.Name | |
新規作成 | Workbooks.Add | |
上書き保存 | ThisWorkbook.Save | |
名前を付けて保存 | Workbooks("保存対象.xlsx").SaveAs("保存先名") | 左は拡張子必要 |
新規~保存
'ブック作成 Dim wb As Workbook Set wb = Workbooks.Add '編集 wb.Sheets(1).Range("A1").Value = "編集" '名前を付けて保存 wb.SaveAs("C:\Book1.xlsx")
開いている全ブック名取得
Dim wb As Workbook For Each wb In Workbooks Debug.Print wb.Name 'ブック名 Debug.Print wb.FullName 'フルパス名 Next
ブックの全シートを検索する
Dim wb As Workbook Dim currentSheet As Worksheet Set wb = ThisWorkbook For Each currentSheet In wb.Sheets Debug.Print currentSheet.name 'シート名 Next
シート操作
操作 | コマンド | 備考 |
---|---|---|
シート取得 | Sheets("Sheet1") Sheets(1) Sheet1 ActiveSheet Workbooks("Book2.xlsx").Sheets("Sheet1") |
シート名 インデックス プロパティ名 アクティブ 別ブックのシート |
アクティブ | Sheets(2).Select | |
追加 | Sheets.Add Sheets.Add After:=ActiveSheet Workbooks("Book2.xlsx").Sheets.Add |
アクティブシートの左に追加 アクティブシートの右に追加 別ブックに追加 |
コピー | Sheets("Sheet1").Copy Sheets(1).Copy After:=Sheets("Sheet2") |
新規ブックにコピー Sheet2の右にコピー |
削除 | Application.DisplayAlerts = False Sheets("Sheet1").Delete Application.DisplayAlerts = True |
|
移動 | Sheets(1).Move Sheets(1).Move After:=Sheets("Sheet2") |
新規ブックに移動 Sheet2の右に移動 |
非表示 | Sheets(1).Visible = xlSheetHidden Sheets(1).Visible = xlSheetVeryHidden |
エクセルで再表示可 エクセルで再表示不可 |
再表示 | Sheets(1).Visible = xlSheetVisible | |
名前取得 | Sheets(1).Name | |
名前変更 | Sheets(1).Name = "名前" |
セル操作
操作 | コマンド | 備考 |
---|---|---|
セル取得 | Range("A1") Range("名前") Cells(1, 1) ActiveCell Selection |
座標指定 名前付きセル 行,列番号で取得 アクティブセル 選択範囲 |
値取得 | Range("A1").Value Cells(1,1).Value Range(Cells(1,1), Cells(2,2)).Value |
|
位置取得 | Range("B1").Row Range("B1").Column Cells(1, 2).Address |
行(1) 列(2) 絶対参照($B$1) |
日時
'時分秒 ※23:59:59 Time '日時 ※2020/05/12 23:59:59 Now 'カスタマイズ ※令和2年5月2日(土)1時2分3秒 Format("2020/05/02 01:02:03", "ggge年m月d日(aaa) h時m分s秒")
形式 | 説明 | 日付 | 結果 | 備考 |
---|---|---|---|---|
yyyy | 西暦 | 2021/1/1 | 2021 | yyで21 |
ggg | 元号漢字 | 2021/1/1 | 令和 | ggで令、gでR |
ee | 和暦 | 2021/1/1 | 03 | eで3 |
aaaa | 曜日 | 2021/1/1 | 金曜日 | aaaで金 |
Me
自分自身を示す
ThisWorkbook内に記載すればThisWorkbookと同じ
Sheet内に記載すれば記載したシートと同じ
Me.Name