ビデオ: Massive Explosive Chain Reaction at 200,000fps - The Slow Mo Guys 2024
Excelのデフォルトの記録モードは絶対参照です。式のセル参照が 絶対参照 である場合、式が新しい場所に貼り付けられたときに自動的に調整されません。
この概念がマクロにどのように適用されるかを理解する最良の方法は、試してみることです。ワークシートの行を数えるマクロを記録します。 (例については、図を参照してください。)
<! - 1 - > 2つのテーブルを含む事前計算済みワークシート。オンラインで使用されているサンプルデータセットを見つけることができます。
マクロを記録するには、次の手順を実行します。
-
セルA1が選択されていることを確認します。
-
「開発者」タブで、「マクロの記録」を選択します。
-
マクロに「AddTotal」という名前を付けます。
-
保存場所にこのワークブックを選択します。
-
[OK]をクリックして録画を開始します。
<! - 2 - >この時点で、Excelはあなたの行動を記録しています。
-
Excelが記録されている間に、セルA16を選択し、セルに合計を入力します。
-
列D(D16)の最初の空のセルを選択し、= COUNTA(D2:D15)と入力します。
この数式は、列Dの下部にある分岐数をカウントします。分岐数がテキストとして格納されているため、COUNTA関数を使用します。
-
「開発者」タブの「記録を停止」をクリックして、マクロの記録を停止します。
<! - 3 - > あなたの合計後のワークシート。
書式設定されたワークシートは、ここに示すようになります。
マクロの動作を確認するには、追加した合計行を削除し、次の手順に従ってマクロを再生します。
-
開発者タブで、マクロを選択します。
-
追加したばかりのAddTotalマクロを検索して選択します。
-
[実行]ボタンをクリックします。
すべてうまくいけば、マクロはあなたの行動をTに再生し、あなたのテーブルに合計を与えます。今ここに事があります。どんなに頑張っても、2番目のテーブルでAddTotalマクロを動作させることはできません。どうして?それは絶対的なマクロとして記録したからです。
これが意味することを理解するには、[開発者]タブの[マクロ]を選択して、基礎となるコードを調べます。 [マクロ]ダイアログボックスが表示されます。
Excelマクロ - ダイアログボックス。AddTotalマクロを選択し、[編集]ボタンをクリックします。 Visual Basic Editorが開き、マクロを記録したときに書き込まれたコードが表示されます。
Sub AddTotal()Range( "A16")。 ActiveCellを選択します。 Formula1C1 = "Total" Range( "D16")。 ActiveCellを選択します。式R1C1 = "= COUNTA(R [-14] C:R [-1] C)" End Sub
選択範囲A16と範囲D16の2行のコードに特に注意してください。マクロは絶対参照モードで記録されていたため、Excelは範囲選択を絶対セル参照として解釈しました。言い換えれば、記録されたマクロを実行するとき、カーソルがブック内のどこにあっても、ExcelはセルA16を選択し、次にセルD16を選択します。次のセクションでは、相対参照モードで記録したときに同じマクロがどのように見えるかを見ていきます。