あなたが必要とする最高のVBAガイド(初心者向け)


ほぼすべてのMicrosoft Office製品で実行されるVBAプログラミング プラットフォームは、これらの製品の使用を強化するために誰でも使用できる最も強力なツールの1つです。

初心者は、開発者メニューをOfficeアプリケーションに追加する方法、VBAエディターウィンドウを入力する方法、および基本的なVBAステートメントとループがどのように動作してExcel、Word、Powerpoint、Outlook、OneNoteでVBAを使い始めることができるかを説明します。

これVBAガイドでは、Microsoft Office製品の最新バージョンを使用しています。以前のバージョンを使用している場合は、スクリーンショットと若干の違いがあります。

VBAエディターを有効にして使用する方法

どのOfficeこのガイドで使用されている製品では、参照されている開発者メニューがないことに気付くかもしれません。開発者メニューは、Excel、Word、Outlook、およびPowerPointでのみ使用できます。 OneNoteには、アプリケーション内からVBAコードを編集するツールはありませんが、OneNote APIを参照して、他のOfficeプログラムからOneNoteとやり取りできます。

これを行う方法については、今後の高度なVBAガイドで説明します。

  • 任意のオフィス製品で[開発者]メニューを有効にするには、[ファイルメニューを選択し、左側のナビゲーションメニューから[オプション]を選択します。
  • 「オプション」メニューのポップアップが表示されます。左側のナビゲーションメニューから[リボンのカスタマイズ]を選択します。
  • 左側のリストには、そのOfficeアプリケーションで使用可能なすべてのメニューとメニューコマンドが含まれています。右側のリストは、現在使用可能またはアクティブ化されているものです。

    <!-
    In_content_1 all:[300x250] / dfp:[640x360]
    ->
    • 右側のリストに開発者が表示されるはずですが、アクティブ化されません。チェックボックスを選択して、[開発]メニューを有効にします。
      • 右側にDeveloperが表示されない場合は、左側のChoose commandsをドロップダウンからすべてのコマンド。リストから[開発者]を見つけ、中央の[追加>>]を選択して、そのメニューをリボンに追加します。
      • [OK完了したら。
      • 開発者メニューがアクティブになったら、メインアプリケーションウィンドウに戻り、トップメニューから[開発者]を選択できます。
      • 次に、リボンの[コントロール]グループから[コードを表示]を選択して、VBAエディターウィンドウを開きます。
        • VBAエディターウィンドウが開き、次のセクションで学習するコードを入力できます。
          • 毎日使用するいくつかのOfficeアプリケーションに開発者メニューを追加してみてください。 VBAエディタウィンドウを開いたら、このガイドの次のセクションに進んでください。
          • 初心者向けの一般的なVBAプログラミングのヒント

            VBAエディターが開くと、左側のパネルのナビゲーションオプションの外観がOfficeアプリケーションごとに異なります。

            これは、VBAコードを配置できる使用可能なオブジェクトが、アプリケーションに存在するオブジェクトによって異なるためです。たとえば、Excelでは、VBAコードをブックまたはシートオブジェクトに追加できます。 Wordでは、VBAコードをドキュメントに追加できます。 Powerpointでは、モジュールのみ。

            したがって、さまざまなメニューに驚かないでください。 VBAコードの構造と構文は、すべてのアプリケーションで同じです。唯一の違いは、参照できるオブジェクトと、VBAコードを介してそれらのオブジェクトに対して実行できるアクションです。

            VBAコードを介して実行できるさまざまなオブジェクトおよびアクションについて説明する前に、 VBAコードを記述するときに使用できる最も一般的なVBAの構造と構文を見てください。

            VBAコードを置く場所

            VBAエディターでは、編集ウィンドウの上部にある2つのドロップダウンボックスを使用して、コードをアタッチするオブジェクトと、コードを実行するタイミングを選択する必要があります。

            たとえば、 Excelでは、[ワークシート]および[アクティブ化]を選択すると、ワークシートが開かれるたびにコードが実行されます。

            その他のワークシートVBAコードをトリガーするために使用できるアクションには、ワークシートが変更されたとき、閉じられたとき(非アクティブ化されたとき)、ワークシート計算が実行されたときなどが含まれます。オブジェクトにVBAコードを配置し、そのコードをトリガーするために使用する正しいアクションを使用してください。

            VBA IFステートメント

            IFステートメントは、他のプログラミング言語で機能するのと同じようにVBAで機能します。

            IFステートメントの最初の部分は、条件または条件セットが真であるかどうかを調べます。これらの条件は、ANDまたはOR演算子で結合してリンクすることができます。

            1つの例は、スプレッドシートのグレードが「合格」グレードを上回っているか下回っているかを確認し、パスまたは別のセルへの失敗ステータス。

            If Cells(2、2)>75 Then Cells(2、3)=“ Pass” Else Cells(2、3)=“ Fail”

            ステートメント全体を1行にしたくない場合は、行の最後に「_」記号を追加して、複数の行に分割できます。

            If Cells(2、2)>75 Then _
            Cells(2、3)=“ Pass” Else _
            Cells (2、3)=「失敗」

            この手法を使用すると、コードの読み取りとデバッグがはるかに簡単になることがよくあります。

            VBA For Next Loops

            IFステートメントは、単一のセルを表示する上記の例のように、単一の比較に最適です。しかし、セルの範囲全体をループし、各セルで同じIFステートメントを実行する場合はどうなりますか?

            この場合、FORループが必要になります。

            これを行うには、範囲の長さを使用し、データを含む行の数だけその長さをループする必要があります。

            これを行うには、範囲とセル変数を定義し、それらをループします。また、適切な行に結果を出力できるように、カウンターを定義する必要があります。したがって、VBAコードには最初にこの行があります。

            範囲を暗くする、範囲をセルにする
            rowCounterを整数にする

            次のように範囲サイズを定義します。

            Set rng = Range(“ B2:B7”)
            rowCounter = 2

            最後に、作成できますその範囲内のすべてのセルをステップ実行して比較を行うFORループ。

            For Each cell In rng
            If cell.Value > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Next cell

            このVBAスクリプト が実行されると、結果は実際のスプレッドシートになります。

            VBA Whileループ

            A whileループは、FORループと同様に一連のステートメントもループしますが、継続するループの条件は残りの条件です

            たとえば、次のようにrowCounter変数を使用するだけで、上記と同じFORループをWHILEループとして記述できます。

            While rowCounter < rng.Count + 2
            If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Wend

            注:行カウンターは2から始まり、データが終了する行7で終了する必要があるため、rng.Count + 2終了制限が必要です。ただし、範囲のカウント(B2:B7)は6のみであり、Whileループは、カウンターがカウンターよりも大きい場合にのみ終了します。したがって、最後のrowCounter値は8(またはrng.Count + 2)である必要があります。

            Whileループを次のように設定することもできます。

            rowCounter <= rng.Count + 1

            rowCounter変数がデータの最後(行7)に達すると、ループが終了できるため、範囲カウント(6)を1だけインクリメントします。

            VBA Do WhileおよびDo Until Loops

            Do WhileループとDo Untilループは、Whileループとほぼ同じですが、動作が少し異なります。

            • Whileループは、ループの開始時に条件が真。
            • Do-Whileループは、ループ内のステートメントを実行した後に条件が真かどうかをチェックします。
            • Do-Until Loopは、ループの実行後に条件がまだfalseであるかどうかを確認します。
            • この場合、t彼はDo-Whileループとして上記のWhileループを実行します。

              Do
              If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Loop While rowCounter < rng.Count + 2

              この場合、ロジックはあまり変更されませんが、ロジックを確認したい場合はすべてのステートメントが実行された後に比較が行われ(少なくとも1回はすべて実行できるようにします)、Do-WhileまたはDo-Untilループが適切なオプションです。

              VBA Select Caseステートメント

              VBAコードの構造化を開始するために理解する必要がある最後のタイプの論理ステートメントは、Select Caseステートメントです。

              上記の例を考えると、単なる合格不合格ではない評価方法が必要だとしましょう。代わりに、AからFの文字グレードを割り当てます。

              次のSelect Caseステートメントを使用してこれを行うことができます。

              For Each cell In rng
              Select Case cell Case 95 To 100 Cells(rowCounter, 3) = "A" Case 85 To 94 Cells(rowCounter, 3) = "B" Case 75 To 84 Cells(rowCounter, 3) = "C" Case 65 To 74 Cells(rowCounter, 3) = "D" Case 0 To 64 Cells(rowCounter, 3) = "F" End Select rowCounter = rowCounter + 1 Next cell

              結果のスプレッドシートこのVBAスクリプトの実行後は次のようになります。

              これで、Microsoft OfficeアプリケーションでVBAの使用を開始するために知っておく必要があることはすべてわかりました。

              【暴露】ポイントサイト副業の稼げる仕組みと収入事情について

              関連記事:


              29.01.2020