学習日:2024/07/07
参考書:ExcelVBA本格入門 技術評論社(著者 大村あつし)
3-1から4-3まで(P72-89)
【学習内容のまとめ】
保存場所を特定してブックを開く
Workbooksコレクションに対してOpenメソッドを使う
カレントフォルダーのブックを開く
カレントフォルダー → 現在選択されているフォルダ
カレントフォルダーに保存されているブックを開くときはドライブやフォルダ名を省略可能
※開いているファイルがと同じフォルダにファイルを入れておく
名前付き引数 → 引数の役割(引数の値に内を入れるか)を連想できる引数名
標準引数 → 引数名を省略して引数の値を指定する方法
確認メッセージを表示せずにブックを閉じる
ブックの内容を変更して上書き保存をせずに閉じようとすると確認メッセージが表示される
VBAを使うと確認メッセージを表示させずにブックを閉じることができる
Workbooks("Dummy.xlsx”).Close SaveChanges:=True → Closeメソッドに引数SaveChangesを指定する
※Closeメソッドの後ろにTrueと標準引数で記述しても問題ない
印刷プレビューを実行する
Worksheets("売上台帳”).PrintPreview → ワークシートの印刷プレビューを実行
Worksheets(”売上台帳”).PrintOut → ワークシートの印刷を実行
確認メッセージを表示せずにワークシートを削除する
既にデータが入力されているワークシートを削除しようとすると削除確認のメッセージが表示される
Application.DisplayAlerts = False → シートの削除確認メッセージを表示しないようにする
Worksheets(”入金台帳”).Delete → ワークシート入金台帳を削除
Application.DisplayAlerts = True → DisplayAlertsの値をTrueに戻す
※DisplayAlertsプロパティでもセキュリティの警告メッセージを非表示にすることはできない
ワークシートを非表示にする
Worksheets(”sheet2”).Visible = xlSheetHidden → Visibleプロパティでシートを非表示にする
Worksheets(”Sheet2”).Visible = xlSheetVeryHidden → ワークシートを再表示できなくする(再表示の選択ができなくなる)
ワークシートを再表示する
Worksheets(”Sheet2”).Visible = xlSheetVisible
Sheetsコレクションの正体
ワークシートはWorksheetsプロパティ、グラフシートはChartsプロパティで特定する
それらのシートを問わずひとまとめにするSheetsコレクションという考え方がある
セルはVBAで操作する
セルはRangeオブジェクトで操作する
セルは単体でも複数のセル範囲でもRangeオブジェクトとして扱われる
セル番地でセルを選択する
セルの選択にはSelectメソッドを使う
Range(”C3”).Select → 1つのセルを選択する
Range(”B2:C5”).Select → 連続するセル範囲を選択する
Range("B2,B4,D2,D4”).Select → 非連続の複数セルを選択する
Range(”B6:D7,B9:D10”).Select → 非連続の2つのセル範囲を選択する
※("B2:C5")はB2からC5までをつなげる、(”B2,C5”)と記述するとB2を始点としてC5を終点とする範囲という意味合いになる
定義された名前でセルを選択する
Range("売上合計”).Select → セルに定義した名前でセルを指定して選択する
セルの名前を定義するにはセルを選択し右クリック → 名前の定義をクリック → 新しい名前ダイアログボックスが表示されるので名前の項目に定義したい名前を入力してOKをクリック → 左上の名前ボックスで表示を確認
行や列全体を選択する
Range(”1:1”).Select → 行1を選択
Range(”A:A”).Select → 列Aを選択
Range(”1:3”).Select → 行1から行3までを選択
Range(”A:C”).Select → 列Aから列Cまでを選択
Range(”1:3,6:6”).Select → 行1から行3および行6
Range(”A:C,F:F”).Select → 列Aから列Cおよび列F
すべてのセルを選択する
Cells.Select → セルを全選択するにはCellsプロパティを使う
アクティブシートのセルしか選択できない
Selectメソッドでセルを選択する場合、親であるワークシートがアクティブでなければいけない
そのため、あらかじめ親ワークシートをアクティブにしておく必要がある
Workbooks(”入金.xlsx”).Worksheets(”入金台帳”).Activate
Range(”A1:C25”).Select
Withステートメントの基本構文
同じオブジェクトに対して連続的に処理を行う場合Withステートメントを使用すると効率的
Not演算子によるプロパティの切り替え
If Columns(”C”).Hidden = True Then Columns(”C”).Hidden = False → 列Cが非表示だったら再表示にする
If Columns(”C”).Hidden = False Then Columns(”C”).Hidden = True → 列Cが表示されていたら非表示にする
Not演算子を併用すると1つのステートメントでプロパティのTrue/Falseを切り替えるマクロが作成できる
With Columns(”D”)
.Hidden = Not .Hidden → 列の表示/非表示を切り替える
End With