自分でマクロを記述する
オートマクロでは生成できないマクロは、自分で書きます。ここでは、セルの値を1増やすマクロを例に、説明します。このマクロは、index関数でデータを呼び出す際の、参照行番号を繰り上げるのに使っています。
VBAのツールバーを表示する。
このようなツールボタンを表示させるために、表示・ツールバーの
Visual Basic にチェックを入れます。図の矢印のボタンが、Visual Basic のエディターを表示させるものです。これをクリックします。Visual Basic エディターを開く。

エクセルのシートとは別のウインドウが開きます。このウインドウの、挿入メニューを開き、標準モジュールをクリックします。(オートマクロを記述していれば、標準モジュールシートは、既にあるので、これに書き足しても構いません。)
コードを書く。
ここでは、シートのセルの数字を1増やすマクロを書く例で説明しています。マクロ名は、nextd()とします。(次のデータという意味)
モジュールシートに、sub nextd()と書いてエンターを押すと、End Subが自動で記述され、subもSubと大文字になります。
Sub nextd() と End Sub の間に、コードを記述します。
数字が1ずつ増えるセルは、座標がI2(アイ・2)なので、VBAで使う座標は(2,9)になります。
1行目は、今入っている数値を読み取り、これをnbという変数に取り込みます。
nb=Cells(2,9)
If nb>10 then nb=0 データが10行しか無く、nbが10を超えたら、1に戻したいので
nb=nb+1 nbに1足します。この3行でおしまいです。
マクロを実行する。
ツール・マクロ、実行で、動作を確認します。

マクロ実行ボタンを作る。
このメニューでマクロを実行するのは面倒なので、実行用のボタンを作ります。
そのためのツールバーを、表示・ツールバー・フォームで表示します。
右のようなツールバーの、赤枠で囲ったボタンが、コマンドボタン作成です。
これをクリックし、適当な位置にボタンをドラッグで作ると、先ず最初に、マクロの登録を聞いてきます。
ここで、nextdをクリックして選択します。最初に、この選択をしておきます。
ボタンのデザイン・位置・名前などは、後で設定します。
ボタンが、このようになっているときが、編集モードです。
名前をドラッグして、選択し上書きで「次へ」と書き直します。編集モードになっているときは、ドラッグで大きさ・位置を変更できます。
このように、選択枠が外れると、ボタンは生きているので、クリックするとマクロが実行されます。編集モードに戻したい場合は、右クリックします。
モジュールシート以外の場所にマクロを記述する(プライベートサブ)。
実は、マクロは、標準モジュールだけでなく、各シートやブックにも記述できます。これらは、実行がそのシートなどに特定されるもの(プライベートサブ)です。プロジェクト一覧の下にある標準モジュールでなく、その上のThis Workbookやsheetをクリックして、シートを表示します。
例1:このbookを開いたときは、エンターキィのカーソル移動が横(右)にするが、閉じたときは元の下に戻しておく、というマクロです。

例2:特定のシートのセルが変化したときに実行されるマクロです。入力されると自動実行される。

Changeを選び、 If Target.Column=* and Target.Row=* then を追加して、特定のセルが変化(入力された)したときのみ実行されるようにできます。
●表紙へ