「相対参照で記録」これを使うとマクロ記録はもっと使える。
セルのコピーやデーターの入力を複数のセルに対して操作したマクロ記録。これをコードを使おうとしたとき、セルが固定させれているため汎用的に使えないことに気づく。これは最初に気づくマクロ記録の限界でしょう。
「相対参照で記録」これを使うとマクロ記録はもっと使える。
セルのコピーやデーターの入力を複数のセルに対して操作したマクロ記録。これをコードを使おうとしたとき、セルが固定させれているため汎用的に使えないことに気づく。これは最初に気づくマクロ記録の限界でしょう。
VBEを開いた状態で、すでに以下のオブジェクトが使える。これらが初めからあるオブジェクト変数です。
Office製品では、起動した時点でOfficeのオブジェクトに対応するコードが書けるモジュールが見える状態になっている。見えるということはオブジェクト変数を宣言しなくてもいつでも使える変数を用意してくれている。
VBEのオブジェクトとExcel本体の関係は次図のように確認できる。ワークシートごとにコードが書ける。ThisWorkbookはxlsなどの拡張子のファイルのこと。Sheetの上位のオブジェクトでThisWorkbookワークブックが無いとSheet1などは存在できない。
ThisWorkbookは、ワークブック、具体的にはBook1.xlsなどのExcelのファイルのこと。Excelのファイルの中にワークシートがあるのでThisWorkbookの「オブジェクトの表示」はワークシートのどれかに飛ぶ。ワークブックとワークシート。ブックはファイルのこと。
です。
VBAは、プログラム言語です。Excelマクロではありません。VBA言語でExcelオブジェクトを処理したらマクロです。
マクロは操作手順の記録なので、何らかの言語で書いて動かす。Excelマクロの場合は、付属のVBAを使うのが一般的で、ExcelマクロとなるとExcelオブジェクトをVBAのコードで処理手順を書く。
VBA言語にもれなく巨大なExcelオブジェクト(ライブラリ)が付いている。っていうのが売りですね。
現在のExcelは、ファイルの拡張子がxlsmでないとマクロが消えてしまう。うっかりxlsxで保存して作ったマクロが無くならないように保存するファイルの種類を常に「Excelマクロ有効ブック(*.xlsm)」にする。Excel本体のメニュー/ファイル/オプションで設定する。
Excel97-2003のブックは同じ拡張子でマクロが保存でる。
もし、保存ファイルをxlsmの拡張子にしてないとせっかく書いたコードを飛ばしてしまうことがあるので以下のメッセージが出た時は用心して。コードを書いたのにxlsxの拡張子のままで保存しようとすると出てくる。「はい(Y)」のままエンターキーを押すとコードが飛びます。