よねさんのWordとExcelの小部屋|Excel(エクセル)講座の総目次|Excel(エクセル)中級編:目次|No.7 マクロ
- エクセルでのマクロの使用方法を説明しています。ここでは自動記録による操作が主です。
- Excelで同じ作業を繰り返し実行する場合、マクロを使うと作業を自動化することができます。マクロとは、Visual Basicモジュールに保存される一連のコマンドおよび関数で、作業中にいつでも実行できます。
7.1.1 ウィルス
- コンピュータのファイルに紛れ込んでいるプログラムまたはマクロです。感染したファイルがメモリに読み込まれると、ウィルスは他のファイルにも次々に感染していきます。いたずら程度のウィルスもあれば、大きな被害を及ぼすウィルスもあります。
7.1.2 ウィルスチェック
- Webなどインターネットからダウンロードしたファイル、出版物に付属しているCD-ROMなどに含まれているファイル、他人から受け取ったファイルなど・・・ウィルスが含まれていないとは断言できません。市販のウィルス対策ソフトなどでウィルスの有無をチェックしてから実行するように心がけましょう。
7.1.3 セキュリティレベル
- Excelの初期設定では、信頼できる署名付きのマクロだけが実行できる「高」になっています。
これでは、ウィルスを含まないマクロであっても実行できないので、マクロを使用するために「中」に設定し、自分で判断して実行するようにします。
7.1.4 セキュリティレベルの設定
- [ツール]→[マクロ]→セキュリティ]を選択し、「中」にします。
- Memo:
セキュリティレベル「低」の設定はしないようにしましょう。
無条件でマクロが実行されてしまいます。
- (練習1) F列の合計の高い順に並べ替えるマクロを作成します。
- (作成手順)
- [ツール]→[マクロ]→[新しいマクロの記録]を選択します。
- [マクロの記録]ダイアログで
- マクロ名を「得点順」とします。
- ショートカットキーを[Shift]+[B]と打鍵して、[Ctrl]+[Shift]+[B]とします。
- マクロの保存先は「作業中のブック」とします。
- [OK]ボタンをクリックします。
- F2セルを選択します。「降順で並べ替える」を選択します。
- 記録終了ツールバーの「記録終了」ボタンをクリックします。
([ツール]→[マクロ]→[記録終了]でも同じです)
Memo1:[記録終了]ツールバー
- マクロの自動記録中に[記録終了]ツールバーが表示されない時は
- [表示]→[ツールバー]→[記録終了]で表示できます。
Memo2:マクロの名前
- 先頭は文字でなければなりません。(数字は使用できません)
スペース、「.」「!」「@」「$」「#」などの文字は使用できません。
255文字(半角の場合)以内でなければなりません。
大文字と小文字は区別されません。
Visual Basicの関数、ステートメント、およびメソッドと同じ名前を使うことはできません。
Memo3:ショートカットキー
- キーの組み合わせにより特定のコマンドを実行する。
作成したマクロに既存のショートカットキーを割り当てると、マクロの方が優先され、既存のコマンドは動作しなくなる。
Memo4:マクロの保存先
- 作業中のブック:
- 現在のブックに保存されます。開いていないと、実行できません
個人用マクロブック:
- Excelの使用中に使用できます。
- 他のPCでは使用できません。
新しいブック:
- 新しいブックに保存されます。
- 新しいブックを開いていないと実行できません。
- (一旦、ブック(ファイル)を上書き保存して、閉じましょう。
[ファイル]→[開く]でブック(ファイル)を開こうとすると、マクロの有効/無効の確認ダイアログが表示されます。
自分で作成したマクロが含まれており、ウィルスの心配はないので「マクロを有効にする」でクリックして、開きます。
Memo:ウィルスの有無が分からない場合はウィルス対策ソフトでチェックします。
7.3.1 ツールバーから実行する
- [ツール]→[マクロ]→[マクロ]を選択します。
- 実行するマクロ名を選択します。
- [実行]ボタンをクリックします。
7.3.2 ショートカットキーで実行する
- マクロの記録で登録したショートカットキーを打鍵します。
- [Ctrl]+[Shift]+[B]と打鍵すると得点順に並び変わります。
- [Ctrl]+[Shift]+[N]と打鍵するとNo順に並び変わります。・・・
- ショートカットキーは記憶していないと使えません。また、メニューバーからの操作では操作性がいまいちです。
- シートにマクロの実行用のボタンを配置して、ボタンをクリックしてマクロを実行することもできます。
7.4.1 フォームのボタンを使う
- [表示]→[ツールバー]→[フォーム]を選択します。
- フォーム ツールバーの「ボタン」を選択し、シートでクリックします。
- シートにボタンが表示され、[マクロの登録]ダイアログが表示されます。
- マクロ名で「得点順」を選択して、[OK]ボタンをクリックします。
- ボタン内をクリックして、カーソルを表示したら「得点順」と入力します。
- Memo:ボタンの選択が解除されてしまった場合
- ボタンを右クリックし、「テキストの編集」を選択します。
- または、[Ctrl]キーを押しながらクリックしても編集状態にできます。
- ボタンを右クリックして、[コントロールの書式設定]を選択します。
- [プロパティ]タブの「セルに合わせて移動やサイズの変更をしない」にチェックを入れます。
- (練習2) 「No順」のボタンを作成し、1行目に移動しましょう。
- 1行目の行高さを広くして、2つのボタンを1行目に移動します。
- それぞれのボタンをクリックして、マクロが動くのを確認します。
7.4.2 オートシェイプにマクロを登録する
- オートシェイプにマクロを登録して、実行することもできます。
- シートにオートシェイプを描画します。
- 図形描画ツールバーの「楕円」を選択し、シートに描画します。
- オートシェイプを右クリックし、[マクロの登録]を選択します。
- [マクロの登録]ダイアログでマクロ名を選択します。
- オートシェイプを右クリックして、[テキストの登録]で文字を入力します。
- オートシェイプを右クリックして、[オートシェイプの書式設定]で、文字の配置や「セルに合わせて移動やサイズの変更をしない」を設定します。
- シートに配置した状態です。
- [ツール]→[マクロ]→[Visual Basic Editor]を選択します。
(ショートカットキーは[Alt]+[F11]です。)
- VBE(Microsoft Visual Basic Editor)が起動します。
- 標準モジュールのModule1に自動記録したマクロ(VBAコード)を見ることができます。
- Sub 得点順()〜End Sub が得点順マクロのコードになります。
- Memo1:コードの意味を調べる
- 調べたいコマンド部分にカーソルを表示し、[F1]キーを押すとHelpが開き、意味や使用法を見ることができます。
7.6.1 不要となったマクロの削除
- [ツール]→[マクロ]→[マクロ]を選択します。
- マクロ名を選択し[削除]ボタンをクリックします。
- 削除の確認ダイアログが表示されますので、[はい(Y)]を選択すると削除されます。
7.6.2 配置したボタンの削除
- 図形描画ツールバーの[オブジェクトの選択]を選択します。
- 配置したボタンを囲むようにマウスをドラッグします。
- ボタンが選択されたら、[Delete]キーを押して削除します。
(選択された状態)

- 図形描画ツールバーの[オブジェクトの選択]ボタンをクリックして解除します。
7.6.3 モジュールの解放
- 上記までの手順でマクロを削除したファイルを上書き保存して、一旦閉じます。
- 再度、[ファイル]→[開く]からファイルを開くとマクロの有効/無効の確認画面がでます。
完全にマクロが削除されていないことになります。
- [ツール]→[マクロ]→[Visual Basic Editor]を選択してVBEを開きます。
- プロジェクト ウィンドウで「Module1」を右クリックし、「Module1の解放」を選択します。
- 「削除する前にModule1をエクスポーとしますか?」とのダイアログで「いいえ」をクリックします。
- ファイルを上書き保存して、一旦閉じてから再度開きます。
- 今度はマクロの有効/無効の確認画面は出なくなりました。(マクロが削除できました。)
7.6.4 マクロの自動記録時に有効なショートカット
- セル選択
| キー |
選択されるセル |
| [→] [←] [↑] [↓] |
一つ隣のセル |
| [Ctrl]+[↓] |
選択したセルの列で、アクティブセル領域の一番下のセル |
| [Ctrl]+[↑] |
選択したセルの列で、アクティブセル領域の一番上のセル |
| [Ctrl]+[→] |
選択したセルの行で、アクティブセル領域の一番右のセル |
| [Ctrl]+[↑] |
|
| [Home] |
選択したセルの行で、アクティブセル領域の一番左のセル |
| [Ctrl]+[Home] |
アクティブセル領域の左上のセル |
| [Ctrl]+[End] |
アクティブセル領域の右下のセル |
| [Shift]+上のキー |
それぞれのセルまでのセル範囲を選択 |
| [Shift]+[Ctrl]+[*] |
アクティブセル領域 |
よねさんのWordとExcelの小部屋|Excel(エクセル)講座の総目次|Excel(エクセル)中級編:目次|No.7 マクロ
PageViewCounter

Since2006/2/27