Microsoft Excelを使用すると、ユーザーはマクロとVisual Basic for Applications(VBA)スクリプトを使用して機能とコマンドを自動化できます。VBAは、Excel(VBA is the programming language Excel)がマクロを作成するために使用するプログラミング言語です。また、特定の条件に基づいて自動コマンドを実行します。
マクロは、事前に記録された一連のコマンドです。特定のコマンドが与えられると、それらは自動的に実行されます。経理、プロジェクト管理、給与など、Microsoft Excelに繰り返し実行するタスクがある場合、これらのプロセスを自動化すると、時間を大幅に節約できます。
Excelの(Excel)リボン(Ribbon)の[開発者(Developer)]タブで、ユーザーはマウスクリックとキーストローク(マクロ)を記録できます。ただし、一部の関数では、マクロが提供できるよりも詳細なスクリプトが必要です。ここで、VBAスクリプティングが大きなメリットになります。これにより、ユーザーはより複雑なスクリプトを作成できます。
この記事では、次のことを説明します。
- スクリプトとマクロの有効化
- Excelでマクロを作成する方法
- マクロの具体例
- VBAの詳細
- VBAを開始するためのボタン(Button)を作成する
- (Add Code)ボタン機能を提供する(Button Functionality)コードを追加する
- うまくいきましたか?
スクリプトとマクロの有効化(Enabling Scripts & Macros)
ExcelでマクロまたはVBAスクリプトを作成する前に、リボン(Ribbon)メニューの[開発者(Developer )]タブを有効にする必要があります。[開発者(Developer)]タブはデフォルトでは有効になっていません。有効にするには:
- Excelワークシートを開きます。
- [ファイル](File ) >[オプション]( Options ) >[リボンのカスタマイズ]をクリックします。( Customize Ribbon.)
- Developerの横のボックスにチェックマークを付けます。
- リボン(Ribbon)メニューから[開発者(Developer)]タブをクリックします。
- 次に、[マクロセキュリティ(Macro Security)]をクリックし、[すべてのマクロを有効にする]の横のチェックボックスをオンにします(推奨されません。潜在的に危険なコードが実行される可能性があります)。 (Enable all macros (not recommended; potentially dangerous code can run). )
- 次に、[ OK]をクリックします。( OK.)
マクロがデフォルトでオンになっておらず、警告が表示される理由は、マクロがマルウェアを含む可能性のあるコンピューターコードであるためです。
(Make)Excelやその他のMicrosoftプログラムで共有プロジェクトで作業している場合は、ドキュメントが信頼できるソースからのものであることを確認してください。
スクリプトとマクロの使用が終了したら、すべてのマクロを無効にして、悪意のある可能性のあるコードが他のドキュメントに感染するのを防ぎます。
Excelでマクロを作成する(Create a Macro in Excel)
マクロの記録 中にExcelで実行するすべてのアクションがExcelに追加されます。
- [開発者]タブで、[マクロの記録(Record Macro)]をクリックします。
- マクロ名(Macro name)、ショートカットキー(Shortcut key)、および説明(Description. )を入力します。マクロ(Macro)名は文字で始まる必要があり、スペースを含めることはできません。ショートカットキーは文字である必要があります。
次のオプションから、マクロを保存する場所を決定します。
- パーソナルマクロワークブック(Personal Macro Workbook):これにより、Excelドキュメントで使用するマクロが保存された非表示のExcelドキュメントが作成さ(Excel)れます(Excel)。
- 新しいワークブック(New Workbook):作成されたマクロを保存するための新しいExcelドキュメントを作成します。(Excel)
- このワークブック(This Workbook):これは、現在編集しているドキュメントにのみ適用されます。
完了したら、[ OK(OK) ]をクリックします。
- (Run)自動化するアクションを実行します。終了したら、[記録の停止(Stop Recording)]をクリックします。
- マクロにアクセスする場合は、指定したキーボードショートカットを使用します。
マクロの具体例(Specific Example Of a Macro)
顧客向けの簡単なスプレッドシートと、顧客が支払うべき金額から始めましょう。ワークシートをフォーマットするためのマクロを作成することから始めます。
すべてのスプレッドシートで、名前と名前を別々の列に配置するなど、異なる形式を使用する必要があると判断したとします。
これは手動で変更できます。または、マクロを使用してプログラムを作成し、自動的に正しくフォーマットすることもできます。
マクロを記録する(Record The Macro)
- [マクロの記録](Record Macro)をクリックします。これをFormat_Customer_Dataと呼び、[ (Format_Customer_Data)OK ]をクリックします。
- 必要なフォーマットを取得するために、最初の列名をFirstNameに変更します(First Name)。
- 次に、Aの横に列を挿入し、それをLastNameと呼びます(Last Name)。
- (Highlight)最初の列のすべての名前(まだ姓名が含まれています)を強調表示し、リボンナビゲーションから[データ]をクリックします。(Data)
- [テキストから列へ]を(Text to Columns)クリックします。
- 区切り記号>次へ(Next )>スペースで(Separate by Space)区切る(Delimited)>次へ(Next )>終了(Finish)にチェックマークを付けます。以下のスクリーンショットと、上記のプロセスによって姓と名がどのように分離されたかを参照してください。
- [未払い残高](Balance Due)フィールドをフォーマットするには、金額を強調表示します。[(Click)ホーム(Home )] >[条件付き書式](Conditional Formatting) >[セルルールを強調表示](Highlight Cell Rules) >[より大きい](Greater Than ) >[ 0 ]をクリックします。
これにより、残高のあるセルが強調表示されます。フォーマットをさらに詳しく説明するため、バランスの取れていない顧客をいくつか追加しました。
- Developerに戻り、StopRecordingをクリックします。
マクロを適用する(Apply The Macro)
マクロを記録して正しくフォーマットする前に、元のスプレッドシートから始めましょう。[(Click)マクロ]をクリックし、作成したマクロ(Macros)を選択して実行(Run)します。
マクロを実行すると、すべてのフォーマットが自動的に行われます。作成したこのマクロは、VisualBasicEditorに保存されます。
ユーザーは、いくつかの異なる方法でマクロを実行できます。詳細については、マクロの実行(Run a macro)をお読みください。
VBAの詳細(Learn More About VBA)
VBAについて学ぶには、[開発者(Developer)]タブから[マクロ(Macro)]をクリックします。作成したものを見つけて、[編集]をクリックします。(Edit.)
上のボックスに表示されているコードは、マクロを記録したときに作成されたものです。
これは、他の顧客支払いスプレッドシートを同じ方法でフォーマットする場合にも実行します。
VBAを開始するためのボタンを作成する(Create a Button To Get Started With VBA)
上記の同じスプレッドシートを顧客とその金額を使用して、通貨コンバーターを作成しましょう。
- ボタン要素を挿入するには、 [開発者(Developer )]タブに移動します。
- [コントロール(Controls)]セクションの[挿入(Insert)]の横にあるドロップダウンから[ ActiveXコマンドボタン(ActiveX Command Button )]を選択します。
- ボタンをスプレッドシートの任意の場所にドラッグ(Drag)すると、ボタンに簡単にアクセスして、後で必要に応じて変更できます。
- コードを添付するには、ボタンを右クリックして[プロパティ(Properties)]を選択します。名前(Name)をCommandButtonとして保持し、キャプション(Caption )を変換( Convert )します(これはボタンのテキストです)。
ボタン機能を提供するコードを追加する(Add Code To Give The Button Functionality)
VBAコーディングは(VBA)Excelインターフェイスでは行われません。それは別の環境で行われます。
- [開発者(Developer)]タブに移動し、デザインモード(Design Mode)がアクティブになっていることを確認します。
- 作成したボタンのコードにアクセスするには、ボタンを右クリックして[コードの表示](View Code)を選択します。
- 下のスクリーンショットのコードを見ると、コードの最初( Private Sub(Private Sub))と最後(End Sub)がすでに存在していることに注意してください。
ActiveCell.Value = (ActiveCell * 1.28)
このセクションの目的は、スプレッドシートの通貨を変換することです。上記のスクリプトは、GBPからUSDへの為替レートを反映しています。セルの新しい値は、現在そこにあるものに1.28を掛けたものになります。
以下のスクリーンショットは、コードを挿入した後のVBA(VBA)ウィンドウでのコードの外観を示しています。
- 上部のナビゲーションで[ファイル(File )]に移動し、 [閉じる]をクリックして[Microsoft Excel(click on Close and Return to Microsoft Excel)に戻る]をクリックして、メインのExcelインターフェイスに戻ります。
うまくいきましたか?(Did It Work?)
コードをテストする前に、最初にデザインモード(Design Mode)を無効にして(クリックして)、それ以上の変更を避け、ボタンの機能を提供する必要があります。
- スプレッド(Type)シートに任意の数値を入力し、[変換(Convert)]ボタンをクリックします。あなたの数の値が約4分の1増加した場合、それは機能しました。
この例では、4番をセルに入れます。[変換(Convert)]をクリックすると、数値が5.12に変わりました。1.28の4倍は5.12なので、コードは正しく実行されました。
Excelでマクロまたはスクリプトを作成する方法を理解したので、それらを使用してExcelでの多数のアクションを自動化できます。
How To Create a VBA Macro Or Script In Excel
Microsoft Excel enables users to automate features and commands usіng macros and Visual Basic for Applications (VBA) scripting. VBA is the programming language Excel uses to create macros. It will also execute automated commands based on specific conditions.
Macros are a series of pre-recorded commands. They run automatically when a specific command is given. If you have tasks in Microsoft Excel that you repeatedly do, such as accounting, project management, or payroll, automating these processes can save a lot of time.
Under the Developer tab on the Ribbon in Excel, users can record mouse clicks and keystrokes (macros). However, some functions require more in-depth scripting than macros can provide. This is where VBA scripting becomes a huge benefit. It allows users to create more complex scripts.
In this article, we will explain the following:
- Enabling Scripts & Macros
- How to Create a Macro in Excel
- Specific Example of a Macro
- Learn More About VBA
- Create a Button to Get Started with VBA
- Add Code to Give the Button Functionality
- Did it Work?
Enabling Scripts & Macros
Before you can create macros or VBA scripts in Excel, you must enable the Developer tab on the Ribbon menu. The Developer tab is not enabled by default. To enable it:
- Open an Excel worksheet.
- Click on File > Options > Customize Ribbon.
- Put a tick in the box next to Developer.
- Click on the Developer tab from the Ribbon menu.
- Next, click on Macro Security and tick the box next to Enable all macros (not recommended; potentially dangerous code can run).
- Then click OK.
The reason macros are not turned on by default and come with a warning is that they are computer code that could contain malware.
Make sure the document is from a trusted source if you are working on a shared project in Excel and other Microsoft programs.
When you are done using your scripts and macros, disable all macros to prevent potentially malicious code from infecting other documents.
Create a Macro in Excel
All the actions you take in Excel while recording a macro are added to it.
- From the Developer tab, click on Record Macro.
- Enter a Macro name, a Shortcut key, and a Description. Macro names must begin with a letter and can’t have any spaces. The shortcut key must be a letter.
Decide where you want to store the macro from the following options:
- Personal Macro Workbook: This will create a hidden Excel document with stored macros to be used with any Excel documents.
- New Workbook: Will create a new Excel document to store the created macros.
- This Workbook: This will only be applied to the document you are currently editing.
When done, click OK.
- Run through the actions you want to automate. When you are finished, click Stop Recording.
- When you want to access your macro, use the keyboard shortcut you gave it.
Specific Example Of a Macro
Let’s start with a simple spreadsheet for customers and how much they owe. We will begin by creating a macro to format the worksheet.
Let’s assume that you decide that all spreadsheets should use a different format such as putting first and last name in separate columns.
You can manually change this. Or you can create a program using a macro to automatically format it correctly for you.
Record The Macro
- Click on Record Macro. Let’s call it Format_Customer_Data and click OK.
- To get the formatting we want, we will change the first column name to First Name.
- Then insert a column next to A and call it Last Name.
- Highlight all the names in the first column (which still include first and last name), and click on Data from the ribbon navigation.
- Click on Text to Columns.
- Tick Delimited > Next > Separate by Space > Next > Finish. See screenshot below and how the first and last names were separated by the process above.
- To format the Balance Due field, highlight the amounts. Click on Home > Conditional Formatting > Highlight Cell Rules > Greater Than > 0.
This will highlight the cells that have a balance due. We added a few customers with no balance due to further illustrate the formatting.
- Go back to Developer and click Stop Recording.
Apply The Macro
Let’s start with the original spreadsheet before we recorded the macro to format it correctly. Click on Macros, select and Run the macro you just created.
When you run a macro, all the formatting is done for you. This macro we just created is stored in the Visual Basic Editor.
Users can run macros in several different ways. Read Run a macro to learn more.
Learn More About VBA
To learn about VBA, click on Macro from the Developer tab. Find one you have created and click Edit.
The code you see in the box above is what was created when you recorded your macro.
It is also what you will run when you want to format other customer payment spreadsheets in the same way.
Create a Button To Get Started With VBA
Using the same spreadsheet above with customers and how much they owe, let’s create a currency converter.
- To insert a button element, navigate to the Developer tab.
- Select ActiveX Command Button from the dropdown next to Insert in the Controls section.
- Drag the button anywhere on the spreadsheet so you can easily access it and change it later if you want.
- To attach the code, right-click on the button and select Properties. We will keep the Name as CommandButton and the Caption to Convert (this is the button text).
Add Code To Give The Button Functionality
VBA coding doesn’t take place in the Excel interface. It is done in a separate environment.
- Go to the Developer tab and make sure Design Mode is active.
- To access the code of the button we just created, right-click on it and select View Code.
- Looking at the code in the screenshot below, notice the beginning (Private Sub) and end (End Sub) of the code is already there.
- The code below will drive the currency conversion procedure.
ActiveCell.Value = (ActiveCell * 1.28)
Our purpose in this section is to convert the currency in our spreadsheet. The script above reflects the exchange rate from GBP to USD. The new value of a cell will be what is currently there multiplied by 1.28.
The screenshot below shows you how the code looks in the VBA window after you insert it .
- Go to File in the top navigation and click on Close and Return to Microsoft Excel to return to the main Excel interface.
Did It Work?
Before you can test your code, you must first disable Design Mode (click on it) to avoid further modifications and give the button functionality.
- Type any number into your spreadsheet and then click the Convert button. If the value of your number increases by approximately one-quarter, it worked.
For this example, I put the number 4 into a cell. After clicking Convert, the number changed to 5.12. Since 4 times 1.28 is 5.12, the code was carried out correctly.
Now that you understand how to create a macro or script in Excel, you can use them to automate a multitude of actions in Excel.