シート名を配列に格納する
シート名を配列に格納する関数
使用例
Sub main() Dim WB as Workbook Set WB = ActiveWorkBook Dim mySheetName As Variant mySheetName = CheckSheetName(WB) End Sub
新しいブックを作成する
ブックを作成するにはAddメソッドを使用する。
WorkBooks.Add
使用例
Sub Main() Dim WB As WorkBook Set WB = WorkBooks.Add WB.SaveAs "C:\bin\新しいブック.xlsx" End Sub
ブックを閉じる
ブックを閉じるにはCloseメソッドを使用します。
Workbooks("ブック名.xlsx").Close
また、引数により保存して閉じる、保存しないで閉じる、名前を付けて保存を選択することができます。
引数 | 定数 | 内容 |
SaveChanges | True | ブックの変更を保存して閉じます。 |
False | ブックの変更を保存せずに閉じます。 | |
省略 | ファイル名の入力を促すダイアログ ボックスが表示されます。 | |
FileName | ファイル名 | 指定されたファイル名で、変更したブックを保存します。 |
使用例
Sub Main() Dim WB As Workbook Set WB = ActiveWorkbook Application.Quit '保存と同時にExcelを終了させる WB.Close savechanges:=True End Sub
"Application.Quit"の記述は気持ち的にWB.close処理の後に書きたいが、そうするとExcelが終了せずに残ってしまう。そういうもの?
自分なりのExcel VBAコーディング規約
変数や関数の名前を特にルールを設けずコーディングしていたので今のうちに整理しておきたい。また、今後追加があればこの記事に追記していく。
命名規則
・Sub、Function→Pascal形式(大文字始まり。単語と単語のつなぎ目は大文字)
・動詞、名詞の順で繋げて命名する
・変数→Camel形式(小文字始まり。単語と単語のつなぎ目は大文字)
・オブジェクト変数→全部大文字
・カウンターはi,j,k,lでもOK
・とりあえず数字ならn,m
・件数を数えるときに使うならcnt
・メッセージはmsg
・フラグはflg
・中間処理などの格納はbuf
・一時的に使用する変数はtmp
・コロコロ変わるマジックナンバーはconstで宣言
・プロシージャ(サブ・関数)はモジュール名を指定して呼び出す
その他
・Integerは使わずLongを使う
・なんとなくVariantは辞める
・引数にByVal(値渡し)、ByRef(参照渡し)を指定する
・脱ハンガリアン記法
・Rangeを使用する場合はシート名から記述する