Microsoft

Excel

Excelの基本概念と画面構成

ワークブックとワークシート

  • ワークブック: Excelファイル全体のこと(.xlsxファイル)
  • ワークシート: ワークブック内の各シート(タブ)

画面構成

  • リボン: 画面上部に表示される帯状のメニュー(「ファイル」「ホーム」「挿入」など)
  • クイックアクセスツールバー: 画面左上のツールバー(保存、元に戻すなど)
  • 数式バー: ワークシート上部にあり、選択したセルのデータや数式を表示
  • ワークシート: 作業領域(縦: 列「A,B,C…」、横: 行「1,2,3…」)
  • セル: 行と列の交点(例:A1, B2)
  • セル範囲: 連続したセルの集合(例:A1:C3)
  • シートタブ: 画面下部のワークシート切り替え用タブ
  • ステータスバー: 画面最下部の情報表示バー

基本的な操作方法

Excelの起動

  • Windows:
    • スタートメニュー→「Excel」を選択
    • または検索バーに「Excel」と入力して検索
  • macOS:
    • Finder→「アプリケーション」→「Microsoft Excel」
    • または「Launchpad」から「Microsoft Excel」

ファイルの保存

  1. 「ファイル」タブ→「名前を付けて保存」または「上書き保存」
  2. 保存先を指定し、ファイル名を入力して「保存」をクリック

ワークシートの操作

  • 新規追加: シートタブの「+」をクリック
  • 名前変更: シートタブをダブルクリックして新しい名前を入力
  • 削除: シートタブを右クリック→「削除」
  • 移動/コピー: シートタブをドラッグ、または右クリック→「移動またはコピー」

データ入力と編集

データの入力

  1. セルをクリックして選択
  2. データを入力
  3. 入力の確定方法:
    • Enterキー: 入力確定後、下のセルに移動
    • Tabキー: 入力確定後、右のセルに移動
    • 矢印キー: 入力確定後、指定方向のセルに移動
    • 別のセルをクリック: 入力確定後、クリックしたセルに移動

データの編集

  • セルの内容編集: セルをダブルクリックするか、F2キーを押す
  • セルの内容削除: セルを選択してDeleteキーを押す
  • 連続データ入力: 数値や日付を入力後、セルの右下(フィルハンドル)をドラッグ

データの選択

  • 単一セル: クリック
  • 連続範囲: 始点をクリック→Shiftキーを押しながら終点をクリック
  • 複数範囲: Ctrlキーを押しながら各セルまたは範囲をクリック
  • 全選択: Ctrl + A

コピー&ペースト

  • コピー: 選択したセルを右クリック→「コピー」または「Ctrl+C」
  • 切り取り: 選択したセルを右クリック→「切り取り」または「Ctrl+X」
  • 貼り付け: 貼り付け先で右クリック→「貼り付け」または「Ctrl+V」
  • 形式を選択して貼り付け: 右クリック→「形式を選択して貼り付け」
    • 値のみ: 数式ではなく結果だけを貼り付け
    • 書式のみ: セルの書式だけを貼り付け

セルの書式設定
 数値書式
  ・セルを選択から「ホーム」タブ→「数値」グループから書式を選択(通貨形式、パーセント、日付など)
  ・または右クリック→「セルの書式設定」→「表示形式」タブ

フォント設定

  • 「ホーム」タブ→「フォント」グループ
    • フォントの種類、サイズ、太字(Ctrl+B)、斜体(Ctrl+I)、下線(Ctrl+U)、色など

配置設定

  • 「ホーム」タブ→「配置」グループ
    • 左揃え、中央揃え、右揃え、上下の配置など

罫線設定

  1. セルを選択
  2. 「ホーム」タブ→「フォント」グループ→「罫線」ボタン
  3. 罫線のスタイルと位置を選択

セルの結合

  1. 結合したいセルを選択
  2. 「ホーム」タブ→「配置」グループ→「セルを結合して中央揃え」

セルの塗りつぶし

  1. セルを選択
  2. 「ホーム」タブ→「塗りつぶしの色」アイコンをクリック

行と列の操作

行や列の追加/削除

  • 行や列を追加: 右クリック→「挿入」
  • 行や列を削除: 右クリック→「削除」

行や列のサイズ変更

  • 手動調整: 行番号または列番号の境界線をドラッグ
  • 自動調整: 境界線をダブルクリック

計算式と関数
 基本的な計算式
 ・計算式は「=」で始める
 ・演算子: +(加算)、-(減算)、*(乗算)、/(除算)
 ・例:=A1+B1、=C2*D2
 関数の挿入方法
  セルを選択>「数式」タブ→「関数の挿入」をクリック>関数を選択して「OK」>引数を入力して「OK」
 オートSUM:値を出すセルに= から選択範囲からEnterで合計
 オートフィル:セルの右下の小さな四角(フィルハンドル)をドラッグして、計算式や連続データを複製

グラフ作成
グラフの作成手順

  1. グラフ化したいデータ範囲を選択
  2. 「挿入」タブ→「グラフ」グループから適切なグラフタイプを選択
  3. グラフが挿入される

グラフのカスタマイズ

  • グラフを選択すると「グラフツール」が表示される
  • 「デザイン」「書式」「レイアウト」タブでグラフをカスタマイズ
  • グラフタイトルや軸ラベルの編集が可能

グラフの種類

  • 縦棒グラフ: カテゴリ間の比較に適している
  • 折れ線グラフ: 時間経過による変化の表示に適している
  • 円グラフ: 全体に対する部分の割合を表示するのに適している
  • 散布図: 2つの変数間の関係を調べるのに適している

データの並べ替えとフィルター

データの並べ替え

  1. データ範囲内のセルを選択
  2. 「データ」タブ→「並べ替え」をクリック
  3. 並べ替えの基準(列)と順序(昇順/降順)を指定

フィルターの適用

  1. データ範囲内のセルを選択
  2. 「データ」タブ→「フィルター」をクリック
  3. 列見出しの▼をクリックして、表示したいデータを選択

テーブル機能

  1. データを入力
  2. 「挿入」→「テーブル」を選択
  3. ヘッダー行を設定し、フィルタリング可能に

印刷設定

ページレイアウトの設定

  • 「ページレイアウト」タブで用紙サイズ、余白、方向(縦/横)などを設定

印刷プレビュー

  • 「ファイル」タブ→「印刷」(Ctrl+P)を選択すると、印刷プレビューが表示される

印刷範囲の設定

  1. 印刷したい範囲を選択
  2. 「ページレイアウト」タブ→「印刷範囲」→「印刷範囲の設定」

印刷タイトルの設定

「ページレイアウト」タブ→「印刷タイトル」で、各ページに表示する行や列を設定

テーブル機能

 Excelの「テーブル」機能は、通常の表として入力されたデータを、より効率的に管理・分析するための強力なツールです。ワークシート上の特定の範囲を「テーブル」として定義し、関連するデータのまとまりとしてExcelに認識させるものです。これにより、データに対する書式設定、フィルター、並べ替え、集計、数式適用などが自動的かつ効率的に行えるようになります。

テーブル機能の使い方
①テーブルに変換したいデータ範囲を選択します。
②「挿入」タブの”テーブル”をクリックすると、「テーブルの作成」ダイアログボックスが表示され、データ範囲が自動で選択されていることを確認します。
「先頭行をテーブルの見出しとして使用する」にチェックが入っていることを確認し(見出し行がある場合)、「OK」をクリックします。選択した範囲がテーブルとして設定され、自動的にフィルターボタンや縞模様の書式が適用されます。
③「テーブル デザイン」のタブ表示され、”プロパティ”から「テーブル名」をつけることができます。

機能とメリット
・選択したデザインが自動的に適用され、見やすい表になります。 行ごとに交互に色がつく「縞模様」が設定され、新しい行や列を追加すると、自動的に書式が継承されます。
・テーブルに変換すると、見出し行に自動的にフィルターボタンが設定されます。これにより、データの抽出や並べ替えが簡単に行えます。
・テーブルの下端や右端にデータを入力すると、自動的にテーブルの範囲が拡張されます。これにより、手動で範囲を修正する手間が省け、関数やグラフの参照範囲も自動的に更新されます。
・数式の自動入力
 テーブルの列のいずれかのセルに数式を入力すると、その列のすべてのセルに同じ数式が自動的に適用されます。
 構造化参照(列名を使った参照)により、数式がわかりやすくなります(例:[@数量]*[@単価])。
・集計行の追加
 テーブルの任意の部分を選択し、「テーブル デザイン」タブから”テーブルスタイルオプション”の「集計行」にチェックを入れると、テーブルの最後に集計行が追加されます。
 集計行のセルでは、ドロップダウンリストから「合計」「平均」「最大」「最小」などの関数を簡単に選択でき、フィルターで絞り込んだデータのみの集計も可能です(SUBTOTAL関数が自動的に使用されます)。
・テーブル化された表は、スクロールしても見出し行が常に表示されるため、大量のデータを扱う際にも見出しを見失うことがありません。
・Excelにデータのまとまりとして認識されるため、ピボットテーブルなどとの連携がスムーズになります。
機能のデメリット
・テーブルが含まれるブックは、複数のユーザーで同時に編集する「ブックの共有」機能を利用できません。
・シート保護をしている場合、テーブルに新しいレコード(行)を追加できないことがあります。
・[@列名] のような構造化参照は便利ですが、通常のセル参照に慣れていると、最初は戸惑うかもしれません。
・テーブルの見出し行は必ず文字列として扱われます。日付や数式を見出しに設定しても、それらの機能は利用できません。
・テーブル内ではセル結合ができません。これはデータの一貫性を保つための仕様であり、結合が必要な場合は通常の表として扱う必要があります。
・非常に大量のデータを扱う場合や、複雑な計算を含むシートでは、テーブル機能の使用により処理速度が低下する可能性があります。
 
 
 
 

Power Query

Power Query(パワークエリ)は、「Excelの魔法のデータ取り込み・整形機」です。

概念説明
クエリ (Query)Power Queryで実行される一連のデータ処理手順のことです。外部データに接続し、変換・整形し、Excelに読み込むまでの一連の操作を記録します。
非破壊的元のExcelファイルやデータは一切変更されません。元のデータを汚さずに、処理後のデータだけを新しいシートに作成します。
自動更新一度クエリを作成すれば、元ファイル(フォルダ内のファイル)が更新・追加されたとき、「更新」ボタンを押すだけで統合データも自動で最新の状態になります。

フォルダ内の複数ファイル・複数シートを統合する手順
 ①フォルダを指定して接続する
  統合したいすべてのExcelファイルが入っている親フォルダを用意します。
 新しいExcelブック>リボンの「データ」タブ>「データの取得と変換」グループにある「データの取得」をクリックし、「ファイルから」→「フォルダーから」を選択>対象のExcelファイルが入っているフォルダを選択>フォルダ内のファイル一覧が表示されたら、ダイアログの下にある「結合」の横の矢印をクリックし、「データの結合と変換」を選択。
 ②統合の基となるシートを選択する
  ここで、Power Queryが自動で結合処理を行うためのシートを指定します。
 「ファイルの結合」ダイアログが表示されます>左側の「サンプルのファイル」で、フォルダ内の任意のExcelファイルが選択されていることを確認します。(通常は自動で最初のファイルが選ばれます)>統合したいデータが格納されているフォルダまたはシート名(例: Sheet1売上データなど)を選択します。( 複数のファイル間でシート名やデータ構造が完全に同じであれば、この方法で自動的に結合されます。)>「OK」をクリック。これにより「Power Query エディター」という新しいウィンドウが起動し、すべてのファイルのデータが1つの大きなテーブルに統合されます>「Date」の横の矢印をクリック(『!リストが完全でない可能性があります』の表示が出ていたら→『さらに読み込み』→OK)
 ③データを整形・加工し、Excelに出力する
  統合されたテーブル(クエリ)に対し、必要な最終調整を行います。
  ヘッダーの確認: 1行目が正しく列名(ヘッダー)になっているか確認します。もし1行目がデータの一部になっていたら、「ホーム」タブの「1行目をヘッダーとして使用」をクリックします。
  不要な列の削除: 統合前のファイル名を示すSource.Name列など、不要な列があれば選択して「列の削除」をクリックします。
  データ型の確認: 各列のデータ型(日付、数値、テキストなど)が適切か確認します。(列名の左にあるアイコンで確認できます。例: 123は数値、ABCはテキスト)
  読み込み: 調整が完了したら、Power Query エディターの左上にある「ホーム」タブの「閉じて読み込む」をクリックします。
これで、Power Queryが処理した統合済みの巨大なテーブルが、新しいExcelシートに出力されます。

今後の更新方法
 このクエリを設定したExcelブックを保存しておけば、次回からは、統合フォルダに新しいExcelファイルを追加するか、既存のファイルを更新します。
Power Queryで作成した統合テーブルのどこかを右クリックするか、「データ」タブを開く>更新→ 新しいデータが自動的に統合テーブルの末尾に追加され、整形処理もすべて自動で実行されます。

Excel VBA

マクロ、VBA、VBEの基本用語

1. マクロとは
「マクロ」とは、プログラミング言語そのものではなく、Excelに標準で備わっている機能の一つです。主な役割は、Excel上で行う一連の操作を記録し、それを自動的に再現するこです。たとえば、「特定のセルをコピーして、別のシートに貼り付け、文字の色を変える」といった一連の作業を記録すれば、ボタン一つで何度でも同じ作業を繰り返せるようになります。この「マクロの記録」機能は非常に便利ですが、生成されるコードは時に冗長になりがちです。そのため、より効率的で複雑な自動化を実現するには、次に説明するVBAを使ってコードを直接編集・作成するスキルが不可欠になります。

2. VBAとは
「VBA」とは、「Visual Basic for Applications」の略称で、マクロに具体的な指示を与えるためのプログラミング言語です。マクロがExcelの「機能」であるのに対し、VBAはその機能を動かすための具体的な「指示書」や「命令文」を書くための言葉(言語)そのものを指します。つまり、「VBAで書かれたものがマクロとして実行される」という関係になります。
  Visual Basic: プログラミング言語の名前
  for Applications: Excelなどのアプリケーション(ソフト)のための、という意味

3. VBEとは
「VBE」とは、「Visual Basic Editor」の略称で、VBAのプログラムを記述、編集、管理するための専用ツール(エディタ)です。これはVBAのコードを書くための、いわば「メモ帳のようなもの」で、このVBEという編集画面を開き、VBAという言語を使ってコードを書き、マクロとして実行する指示を作成していきます。
VBEを起動する最も簡単な方法は、ショートカットキー Alt + F11 を押すか、「開発」タブから「Visual Basic」をクリックする。

VBEの画面構成
 VBEを起動するといくつかのウィンドウが表示されます。
主要な4つの構成要素

ウィンドウ名役割
プロジェクトエクスプローラーVBAコードを記述する「用紙(モジュール)」などを管理する場所。最も基本となるウィンドウです。
コードウィンドウ実際にVBAコードを記述する主要なエリア。白い画面の「メモ帳」部分です。
プロパティウィンドウオブジェクトのプロパティ(特性)を表示・設定するエリアです。
ツールバー
マクロの実行や停止など、よく使う操作を行うボタンが配置されているエリアです。

4.コード無効化(コメント機能)記号: ( ‘ )アポストロフィーになります。

5.イミディエイトウィンドウ
VBAの「実行・デバッグ(テスト)専用のコンソール」です。コードウィンドウがVBAコードを書き溜めて保存しておく「ノート」だとすれば、イミディエイトウィンドウは「計算用紙」や「試し書きスペース」のようなものです。
コードの途中経過や変数の値を表示する(Debug.Print)
 コードが正しく動いているか確認するために、途中の変数の値や計算結果をイミディエイトウィンドウに出力させることができます。MsgBox(メッセージボックス)でいちいち表示すると作業が止まってしまいますが、Debug.Print なら裏側で静かに出力してくれるので、デバッグに最適です。例:コードウィンドウに以下のように書くと…
Sub TestDebugPrint()
Dim i As Long
For i = 1 To 3
Debug.Print “ループ ” & i & ” 回目です”
End For
End Sub
このマクロを実行すると、イミディエイトウィンドウに以下のように表示されます。
ループ 1 回目です
ループ 2 回目です
ループ 3 回目です
疑問符(?)で直接値や結果を問い合わせる
 マクロを実行している途中で一時停止した時や、VBEを開いている時に、「今、あのセルの値なんだっけ?」「この計算結果は?」と思ったことをすぐに確認できます。イミディエイトウィンドウで ? (クエスチョンマーク) に続けて知りたいことを入力し、Enterキーを押すだけです。
例:イミディエイトウィンドウに直接入力します。
? 100 * 5 [Enter]↓500 (と結果が返ってくる)
? ActiveSheet.Name [Enter]↓”Sheet1″ (現在アクティブなシート名が返ってくる)
? Range(“A1”).Value [Enter]↓12345 (A1セルの値が返ってくる)
VBAコードを1行だけ直接実行する
 簡単な命令なら、わざわざ Sub プロシージャを作らなくても、イミディエイトウィンドウから直接実行できます。
例:イミディエイトウィンドウに直接入力します。
MsgBox “テストです” [Enter]↓(メッセージボックスが画面に表示される)
Range(“A1”).Value = “Hello” [Enter]↓(ExcelシートのA1セルに “Hello” が入力される)

表示方法:イミディエイトウィンドウが表示されていない場合は、ショートカットキー Ctrl + G を押すか、VBEのメニュー「表示」→「イミディエイトウィンドウ」で表示できます。

VBA 設定手順

VBAを始める必須の設定手順
VBAを記述するためには、まずリボンに「開発」タブを表示させる必要があります。
①「ファイル」タブをクリック>「オプション」を選択>「リボンのユーザー設定」を開く>メインタブの一覧から「開発」にチェックを入れ、「OK」をクリックします。
②「開発」タブが表示されたら、「Visual Basic」ボタンをクリックすることで、VBAのコードを記述・編集するための専用画面であるVisual Basic Editor(VBE)が起動します。また、キーボードショートカットの Alt + F11 を使用しても、VBEの表示・非表示を素早く切り替えることができます。VBEの画面は、主に以下のウィンドウで構成されます。もし、これらのウィンドウが表示されていない場合は、「表示」メニューからそれぞれ「プロジェクト エクスプローラー」と「プロパティ ウィンドウ」を選択して表示させてください。
VBEの重要設定として、コードの品質を保ち、意図しないエラーを防ぐために不可欠な設定
 ・「変数の宣言を強制する」オプションの有効化です。
この設定を行うと、宣言されていない変数の使用がエラーとなり、タイプミスなどによるバグを未然に防ぐことができます。
VBEの「ツール」メニューから「オプション」を選択>表示されたダイアログの「編集」タブを開く>「変数の宣言を強制する」にチェックを入れ、「OK」をクリックします。
 ・「変数の宣言を強制する」オプションの有効化です。この設定を行うと、宣言されていない変数の使用がエラーとなり、タイプミスなどによるバグを未然に防ぐことができます。
VBEの「ツール」メニューから「オプション」を選択>表示されたダイアログの「編集」タブを開く>「変数の宣言を強制する」にチェックを入れ、「OK」をクリックします。
④VBAのコードは、通常「標準モジュール」と呼ばれる場所に記述します。
VBEのプロジェクトエクスプローラーで、コードを記述したいExcelファイルを選択>「挿入」メニューから「標準モジュール」をクリックします。
⑤マクロのセキュリティ設定
  マクロを安全に利用するためのセキュリティレベルを設定します。意図しないマクロが勝手に実行されることを防ぐための重要な設定です。
   「ファイル」タブから「オプション」を選択>左側のメニューから「トラストセンター」(お使いのバージョンによっては「セキュリティセンター」)を選択し、右側に表示される「トラストセンターの設定」ボタンをクリック>新しいウィンドウが開いたら、左側のメニューから「マクロの設定」を選択> 4つの選択肢の中から、「警告を表示してすべてのマクロを無効にする」にチェックを入れ、「OK」をクリックしてウィンドウを閉じます。
 この設定が最も推奨される理由は、ファイルを開いた時点ではマクロは無効化されているため安全性が高く、かつ自分で作ったものや信頼できるマクロは「コンテンツの有効化」ボタンを押すことで個別に実行を許可できる、という柔軟性を両立しているからです。

作成したマクロの保存と利用
 マクロを含んだExcelファイルは、通常のファイルとは異なる特別な形式で保存する必要があります。
  ①「ファイル」タブから「名前を付けて保存」を選択します。
  ②「ファイルの種類」のドロップダウンリストをクリックします。
  ③標準の「Excel ブック (*.xlsx)」ではなく、「Excel マクロ有効ブック (*.xlsm)」を必ず選択してください。
 【重要】 もし間違えて「Excel ブック (*.xlsx)」形式で保存してしまうと、記述したVBAコードはすべて削除されてしまうため、細心の注意を払ってください。
  ④ ファイル名(例:「登録システム」)を入力し、「保存」ボタンをクリックします。これで、マクロを含んだファイルとして正しく保存されました。
 保存した.xlsmファイルを開く際の挙動について。ファイルを開くとリボンの下に「セキュリティの警告 マクロが無効にされました」という黄色いメッセージバーが表示されます。これは、意図しないマクロの実行を防ぐための安全機能です。自分で作成した安全なファイルであることがわかっている場合は、「コンテンツの有効化」ボタンをクリックしてください。これにより、ファイル内のマクロが使用可能な状態になります。

VBEの起動と標準モジュールの挿入

「開発」タブの一番左にある「Visual Basic」アイコンをクリックします。灰色のVBE画面が起動します。このままではコードを書き込めないので、コードを記述するための専用の場所である「標準モジュール」を挿入します。 VBEのメニューバーから「挿入」→「標準モジュール」を選択します。この操作により、画面右側に白いコード入力エリアが表示されます。ここが、VBAという言語を書き込んでいく場所になります。

メッセージボックスの表示
 VBAのプログラムは、「プロシージャ」と呼ばれる処理の塊(かたまり)単位で記述します。プロシージャは Sub というキーワードで始まり、End Sub で終わります。この2つで囲まれた範囲が、一つのマクロとして実行される処理内容となります。
また、コードの可読性を高めるため、処理の記述はインデント(Tabキーで字下げ)を行うのがルールです。
 ① 白いコード入力画面に、Sub テスト() と入力し、Enterキーを押してください。
  Sub は「これからプロシージャを開始します」という宣言です
  テスト の部分が、このマクロの名前(タイトル)になります。
  Enterを押すと、自動的に End Sub という行が補完され、プロシージャの枠組みが完成します。
 ②Sub テスト() と End Sub の間に、カーソルを合わせて以下のコードを記述します。
  MsgBox は、メッセージボックス(小さなダイアログウィンドウ)を表示させるための命令です。続く “テスト” が、メッセージボックスに表示させたい文字列です。VBAでは、プログラム内に直接文字を書き込む場合、このようにダブルクォテーション(“)で囲むというルールがあります。
 ③コードが書けたら、実行してみましょう。VBEの上部にある緑色の三角ボタン(▶)をクリックするか、キーボードのF5キーを押してください。
 ④Excelの画面に戻り、「テスト」という文字が表示されたメッセージボックスが現れれば成功です。ここには「プロシージャの定義」「命令」「引数(表示する文字列)」といったVBAプログラミングの基本構造がすべて含まれています。
 コメント:コードの処理内容を説明するための注釈や覚え書きです。プログラムの動作には影響しません。行頭にシングルクォーテーション (‘) を付けます。その行は緑色で表示され、コメントとして扱われます。
 コードの改行 :コードが長くなり、一行に収まらなくなると非常に見にくくなります。その場合は、途中で改行することができます。改行したい場所で、半角スペースの後にアンダースコア ( _ ) を入力してEnterキーを押します。

マクロの記録

 VBAで利用できるすべてのオブジェクトやプロパティを暗記するのは非効率的で、現実的ではありません。そこで役立つのが、Excelに標準で備わっている「マクロの記録」機能です。これは、ユーザーがExcel上で行った操作を、自動的にVBAコードへ翻訳してくれる、非常に強力な学習ツールです。
「マクロの記録」の基本的な使い方
 ①「開発」タブにある「マクロの記録」ボタンをクリックします。
 ② ダイアログが表示されたら、マクロ名(例:「太字設定」)を入力して「OK」をクリックします。この瞬間から、Excel上のすべての操作がVBAコードとして記録され始めます。
 ③実際にExcel上で操作を行います。例えば、A3セルを選択し、「ホーム」タブにある「B」(太字)ボタンを押してみましょう。
 ④操作が完了したら、必ず「開発」タブの「記録終了」ボタンをクリックして記録を停止します。
 VBEを開いて結果を確認。新しい標準モジュールが自動的に作成され、その中に以下のようなコードが生成されているはずです。

Sub 太字設定()
'
' 太字設定 Macro
'

'
    Range("A3").Select
    Selection.Font.Bold = True
End Sub

生成されたコードを読み解いてみましょう。
 Range("A3").Select:A3セルを選択(Select)する、という操作です。
Selection.Font.Bold = True:現在選択されているもの(Selection)の、フォント(Font)の、太字(Bold)というプロパティを、True(有効)にする、という操作です。
 このように、「マクロの記録」は、「やりたい操作があるが、VBAコードが分からない」という場合に絶大な効果を発揮します まず手動で操作を記録してみて、生成されたコードをヒントにすることで、必要な命令やプロパティを効率的に学ぶことができます。ただし、この機能はあくまで学習の補助ツールです。生成されたコードには無駄な部分が含まれることも多いため、最終的な目標は、記録されたコードを理解し、自分で最適化したり、ゼロから書けるようになったりすることです。
個人用マクロブック
個人用マクロブック(PERSONAL.XLSB)は、どのExcelファイルを開いているときでも共通して利用できるマクロを保存しておくための特殊なブックです。
目的: 複数のブックで頻繁に使う定型的なマクロ(例:特定の書式設定を適用する)がある場合に便利です。
保存方法: マクロの記録ダイアログで、「マクロの保存先」を「個人用マクロブック」に指定して記録を実行します。
実務での利用頻度: 実務ではプロジェクトごとに特化した多様な処理が求められ、複数のブックで全く同じ処理を使い回す場面が限定的だからです。そのため、個人用マクロブックの使用頻度はそれほど高くありません。

VBAの核心概念

VBAの構造を理解する上で最も重要なのが、オブジェクト、プロパティ、メソッドという3つの核心概念です。VBAにおけるあらゆる操作は、オブジェクト(何を)、プロパティ(どんな状態の)、メソッド(どうする)という3つの要素で構成される「文法」に従います。

オブジェクト
VBAにおける操作の対象となる「モノ」を指します。Excelの世界では、セル(Cell)、ワークシート(Sheet)、ブック(Book、Excelファイル全体)などがすべてオブジェクトとして扱われます。VBAのコードは、基本的に「どのオブジェクトに対して、何をするか」を記述することで成り立っています。
 Range(“A1”):このコードは、Excelに対して「シート上にあるA1セルという『モノ』」を指し示しています。これは、マウスでA1セルをクリックする操作と全く同じ意味を持ちます。VBAでは、このRange("A1")という記述で、操作したい対象を明確に指定するのです。

プロパティ
セルの「値」、文字の「色」、フォントの「サイズ」などがプロパティです。
オブジェクトが持つ情報や状態(属性)オブジェクトに対して、.Valueはそのセルが持つ「値」という情報(プロパティ)を表し最も重要で頻繁に使われる。
 VBAでは、. (ドット)で繋ぎ、オブジェクト.プロパティ という順番で記述するのが基本ルールです。これにより、「どのモノの、どの状態」を操作したいのかを正確にExcelに伝えることができます
 プロパティは、値を取得(読み取り)したり、新しい値を設定(書き込み)したりできます。
  情報を取得する(読み取り):オブジェクトが持つ情報を読み取って、利用することができます。以下のコードは、A1セルの値を取得し、メッセージボックスに表示する例です。

MsgBox Range("A1").Value

 これは、「Range("A1").Value(A1セルの値)という情報を、MsgBox(メッセージボックスを表示する命令)に渡して表示してください」という指示になります。
  情報を設定する(書き込み):オブジェクトの状態を新しく設定(変更)することもできます。以下のコードは、A2セルに「テスト」という文字列を書き込む例です。

Range("A2").Value = "テスト"

ここで非常に重要なルールがあります。それは、VBAでは「=」の右側にあるものが左側に入るという「右から左への代入」のルールです。このコードは、「『テスト』という文字列を、Range("A2").Value(A2セルの値)に設定してください」という意味になるのです。

操作構文例解説
値の取得myValue = Range("B20").ValueセルB20の値(プロパティ)を取得し、変数に格納します。
値の設定(代入)Range("B20").Value = 100セルB20の値(プロパティ)に100を設定します。プログラミングにおける=は「右の値を左に入れる」代入を意味します。

メソッド
オブジェクトを操作するための命令(動詞)オブジェクトに対して、.Selectはそのセルを「選択する」という操作(メソッド)を実行します。

これら3つの概念の関係性は、以下の構文で要約できます。
(どのオブジェクト)の(どのプロパティ)を(どうする) 例: オブジェクト.プロパティ = 値
(どのオブジェクト)に(どんなメソッド)を実行させる 例: オブジェクト.メソッド
ここで使用される.(ドット)は、日本語の助詞「の」に相当すると解釈すると、コードの意味が格段に理解しやすくなります。例えば Range("A1").Value は「セルA1値」と読むことができます。
コレクション
Excel VBAでは、操作対象を大きなものから小さなものへと絞り込んで指定していく考え方が基本です。この同じ種類のオブジェクトの集まりを「コレクション」と呼びます。 例えば、「たくさんの本棚の中から1つの本棚を選び、その中の1冊の本を選び、さらにその中の1ページを指定する」というように、Application(Excel全体) → Workbooks(ブックの集まり) → Sheets(シートの集まり) → Range(セルの集まり)と、階層的に対象を特定していきます。

VBAプログラミングの基本構成要素

VBAで複雑なロジックを構築するためには、変数、演算子、そして制御構造といった要素が不可欠です。これらの要素を組み合わせることで、単純な命令の羅列から、条件に応じて処理を変えたり、同じ処理を繰り返したりする、動的で柔軟なプログラムを作成することが可能になります。

変数 (Variables)
変数とは、データを一時的に保存しておくための「箱」のようなものです。計算結果やセルの値などを一時的に記憶させ、後で再利用するために使用します。
変数の宣言:VBAでは、変数を使用する前に「宣言」を行うことが強く推奨されます。宣言とは、どのような名前で、どのような種類のデータを入れる「箱」を用意するかをVBAに伝えるプロセスです。変数の宣言にはDimキーワードを用います
Dim 変数名 As データ型
変数に格納できるデータの種類を「データ型」と呼びます。代表的なデータ型には以下のようなものがあります。

データ型説明
String文字列を格納する型(例:「田中」)。
Long大きな整数を格納する型(例:10000)。
なぜLong(長整数型)を使うのか?
Excelの行数は最大で 1,048,576行 あります。 ひと回り小さい整数型の Integer は 32,767 までしか扱えないため、行数を扱う変数には必ず Long を使います。
Rangeセルやセル範囲などのオブジェクトを格納する型。

変数への値の代入
宣言した変数にデータを格納することを「代入」と呼びます。通常のデータ型と、Rangeのようなオブジェクト型では代入の方法が異なります。特に、オブジェクトを代入する際にはSetキーワードが必須である点に注意が必要です。これは、数値や文字列のような単純な「値」の代入と、メモリ上の場所を指し示す複雑な「オブジェクト」の参照を区別するために不可欠な構文です。

' 文字列変数の場合
Dim staffName As String
staffName = "担当者A"

' オブジェクト変数の場合 (Setキーワードが必須)
Dim targetCell As Range
Set targetCell = Worksheets("Sheet1").Range("A1")

制御構造 (Control Structures)
条件分岐: If…Then…End If ステートメント
Ifステートメントは、指定した条件が満たされるかどうかによって、実行する処理を分岐させる仕組みです。これにより、状況に応じた柔軟な処理が可能になります。
ElseIfElseを組み合わせることで、複数の条件で処理を分岐させることができます。例えば、セルA1の点数に応じて評価を変える処理は以下のように記述できます。

If Range("A1").Value = 100 Then
    MsgBox "満点"
ElseIf Range("A1").Value >= 80 Then
    MsgBox "合格"
Else
    MsgBox "不合格"
End If

繰り返し処理: For…Next ステートメント
For...Nextステートメントは、指定した回数だけ同じ処理を繰り返す仕組み(ループ)です。大量のデータを順番に処理する際などに絶大な効果を発揮します。
基本構文と動作メカニズム
基本構文は For i = [開始数] To [終了数] となります。このループは次のように動作します。まず、カウンタ変数 i に開始数が設定されます。次に、Next iまでの間の処理が実行されます。Next iに到達すると、iの値が自動的に1増加し、iが終了数を超えるまでこのプロセスが繰り返されます。

' メッセージボックスを5回表示する例
Dim i As Long
For i = 1 To 5
    MsgBox "これは " & i & " 回目の処理です。"
Next i
「変数」と「定数」

 値をコンピューターに覚えておいてもらう必要? その答えは、とてもシンプルです。それは、一度覚えた情報(データ)を、後から何度でも効率的に使うためです。例えば、友達と話すとき、一度名前を覚えれば、会話の中で「〇〇さんは」「〇〇くんが」と何度も自然に名前を呼び出すことができますよね。毎回「えーっと、あの、髪が茶色くて…」と説明していたら、とても大変です。
プログラムもこれと全く同じです。計算した結果や、ユーザーに入力してもらった名前などを一時的にコンピューターに記憶させておくことで、プログラムの様々な場所からそのデータを簡単に取り出して使うことができるのです。
 記憶するために使う、2種類の箱について、一つは中身を自由に入れ替えられる「変数」、もう一つは一度入れたら変わらない「定数」です。

——————————————————————————–

変数

変わる値を入れる箱:「変数(へんすう)」
 変数とは、一言でいうと「中身を自由に入れ替えることができる、便利なデータ用の箱」のことです。では、なぜ変数が必要なのでしょうか?それは、以下のような大きなメリットがあるからです。
・複雑な計算の途中結果を、一時的に覚えておくことができる。
・ユーザーが入力した名前や数値を、プログラムの中で保存して後から使える。
・同じ値を何度も書く手間が省け、コードがスッキリする。
 このように、変数はプログラムの中でデータを一時的に管理するための、なくてはならない道具なのです。
変数の使い方
変数の使い方は、たった3つのシンプルなステップで覚えられます。
 ①箱を用意する(宣言)
まずは Dim というキーワードを使って、「これからこういう名前の箱(変数)を使いますよ」とVBAに教えてあげます。これを宣言と呼びます。
 ②箱に値を入れる(代入)
次に、用意した箱に = を使ってデータ(値)を入れます。これを代入と呼びます。
 ③箱の中身を使う(利用)
最後に、箱の名前を呼ぶだけで、中に入っている値を取り出して使うことができます。
箱の種類:「データ型」について
VBAの変数という箱にも「何を入れるか」によって種類があります。これを「データ型」と呼びます。適切なデータ型を選ぶことで、プログラムが効率的に動くだけでなく、間違いも少なくなります。覚えるべき、最も重要なデータ型は以下の3つです。

データ型読み方どんなものを入れるかコード例
Integer / Long整数型 / 長整数型整数(-32,768~32,767など)。Longはより大きな整数を扱えるため、実務ではLongがよく使われます。Dim age As Integer <br> Dim sales As Long
String文字列型“山田” や “Tokyo” といった文字の並び(文字列)を入れます。Dim userName As String
Variantバリアント型数値でも文字列でも、何でも入る万能な箱。昔のプログラミングでは、どの箱を使うか決めておかないとコンピューターの記憶(メモリ)を無駄遣いしてしまうという事情がありました。最近のパソコンではそこまで気にする必要はありませんが、VBAの世界では今でも「中身に合った専用の箱をきちんと選ぶ」ことが、分かりやすく間違いのないコードを書くための良いマナーとされています。Dim anyData As Variant

守るべき大切なルール:「変数の宣言の強制」
守るべき大切な習慣があります。それは、コードの一番上にOption Explicitという一行を書くことです。これは、「宣言していない変数が使われたら、エラーで教えてね」というVBAへのおまじないのようなものです。この設定をしておくと、変数名のタイプミスといった「うっかりミス」をVBAが自動的に見つけてくれるため、バグを未然に防ぐことができます。エディタの設定で自動的にこの一行が入るようにできるので、必ず設定しておきましょう。
代表的な変数名
慣習的に、ループ処理で使うカウンター変数には `i` や `j`、何かの回数を数える変数には `cnt` などがよく使われます。

ステップ
 i という名前をつけた「箱」を用意し、そこに 4 という数字を入れます。VBAでは、これを以下のように記述します。

i = 4

(プログラミングの世界では、このように繰り返し処理で使う変数に i という名前を付ける慣習があります。これは iteration (反復) や index (添え字) の頭文字に由来します。)
 ここでも「右から左への代入」ルールが適用され、「4という数字を、iという名前の箱に入れる」という意味になります。
  箱を再利用する:一度データを入れた箱は、コードの様々な場所で再利用できます。例えば、以下のようにコードを書くと、

Range("A" & i)

VBAは i という箱の中身を確認しに行きます。中には 4 が入っているので、このコードは最終的に Range("A4") と書いたのと同じ意味として解釈されます。もし変数がなければ、A4セルからA7セルに同じ操作をするには、Range("A4")Range("A5")Range("A6")Range("A7")… と、すべてのセルを一つずつ書かなければなりません。変数が登場することで、たった一行の Range("A" & i) という記述をループさせるだけで、何百、何千というセルを自動的に扱う扉が開かれるのです。 

変数の最大のメリットは、「箱の中身を自由に入れ替えられるため、同じ処理を繰り返し行うコードを非常にシンプルに書けること」です。例えば、For i = 4 To 7 という命令を使うと、コンピュータは i という箱の中身を自動的に 4567 と順番に入れ替えながら、間の処理を繰り返してくれます。これにより、A4セルからA7セルまで同じ操作を行う、といった繰り返し処理を、たった数行のコードで実現できるのです。

定数

変わらない値を入れる箱:「定数(ていすう)」
定数とは、その名の通り「一度値を入れたら、後から中身を変更することができない特別な箱」です。プログラムの中には、途中で変わってほしくない、固定された値というものが存在します。その代表例が「消費税率」です。消費税率はプログラムの実行中にコロコロ変わるものではありません。こうした「決まった値」を入れておくのに、定数は非常に便利です。

定数が役立つ場面
定数を使うことには、大きく2つのメリットがあります。
・コードが読みやすくなる プログラムの中に 0.1 という数字が突然出てきても、それが消費税率なのか、割引率なのか、一目では分かりません。しかし、TAX_RATE という名前の定数を使えば、誰が見ても「これは税率だな」と理解できます。
・安全性が高まる 絶対に変わってはいけない重要な値を、誤ってプログラムの途中で書き換えてしまうミスを防ぐことができます。もし定数の値を変更しようとすると、VBAが「この値は変更できません!」とエラーで教えてくれるため、バグの発生を未然に防げます。

定数の使い方
定数は Const というキーワードを使って宣言します。変数との大きな違いは、宣言する時に必ず値も一緒に入れなければならないという点です。
宣言( Const )定数名 (As) データ型 (= 値)
Const TAX_RATE As Currency = 0.1 ‘ 通貨型(Currency)で「TAX_RATE」という名前の定数を宣言し、0.1を代入
Const COMPANY_NAME As String = “株式会社ABC商事” ’ 文字列型の定数も作れる
演算子:計算と比較の記号
数値の計算や文字列の結合、条件の比較などを行うための記号を「演算子」と呼びます。
算術演算子: 四則演算(+, -, *, /)の他に、以下のようなものがあります。
\ : 割り算の商(整数部分)を求めます。
Mod : 割り算の余りを求めます。
比較演算子: 2つの値を比較し、結果が正しいか(True)間違っているか(False)を返します。
  =, <>, <, >, <=, >= などがあります。
文字列連結演算子: 文字列同士を結合する際に使用します。
  & : 「”A” & “B”」は「”AB”」となります。+も使用可能ですが、数値の加算と混同しないよう、文字列の結合には&の使用が推奨されます。
 論理演算子: 複数の条件を組み合わせて判定する際に使用します。
  And : 両方の条件がTrueの場合にTrueとなります(「AかつB」)。
  Or : どちらか一方の条件がTrueの場合にTrueとなります(「AまたはB」)。

3. 一目でわかる!「変数」と「定数」の違い

変数と定数の核心的な違いを、以下の表にまとめました。

変数 (Variable)定数 (Constant)
目的変わる可能性のあるデータを入れる変わらない決まった値を入れる
宣言キーワードDimConst
値の変更いつでも自由に変更できる変更できない(エラーになる)

コードで動きを見てみよう
 変数の値が変わる様子
  以下のコードは、変数 myNumber の中身が変わっていく様子を確認する例です。宣言した直後の「初期値」から、値が入れ替わっていく流れを見てみましょう。

Sub VariableExample()

    Dim myNumber As Long   ’ 変数 myNumber を宣言(この時点では中身は空っぽ)

    MsgBox “宣言直後の値: ” & myNumber   ’ -> 「宣言直後の値: 0」と表示される

    myNumber = 100   ‘ 100を代入して表示

    MsgBox “100を代入した後の値: ” & myNumber    ’ -> 「100を代入した後の値: 100」と表示される

    myNumber = 200    ‘ 同じ変数に200を代入(上書き)して表示

    MsgBox “200を上書きした後の値: ” & myNumber   ’ -> 「200を上書きした後の値: 200」と表示される

End Sub

このように、プログラムの実行中に何度でも値を変更できるのが変数の特徴です。

 定数の値を変更しようとすると…?
  次に、定数の値を変更しようとするとどうなるか見てみましょう。以下のコードでは、先に紹介した「消費税率」の定数を使ってみます。これを実行しようとすると、エラーが発生します。

Sub ConstantExample()

    Const TAX_RATE As Currency = 0.1   ‘ 定数 TAX_RATE(消費税率)を宣言して値を設定 定数の値を表示するのは問題ない

    MsgBox “現在の税率は ” & TAX_RATE & ” です”    ’ -> 「現在の税率は 0.1 です」と表示される   定数に新しい値を代入しようとすると…

    TAX_RATE = 0.12    ‘ ここで「定数には値を代入できません」というコンパイルエラーが発生!

End Sub

このように、定数は中身を書き換えようとするとVBAが「それはできません!」とエラーで教えてくれるため、プログラムの安全性が保たれるのです。

セルとセル範囲の操作

 Excel VBAプログラミングにおいて、すべての操作の基本となるのが、処理対象となるセルやセル範囲を正確に指定することです。
Rangeオブジェクト
 Range(“A1”)やRange(“A1:C3”)のように、Excelのセル番地を文字列で直接指定する、最も直感的な方法です。特定のセルや固定された範囲を扱う場合に便利です。
単一セルの指定
Rangeプロパティは、引数にセル番地を文字列として渡すことで、特定のセルを指定する最も一般的な方法です。

' セルB20を指定する
Range("B20")

セル範囲の指定
Rangeプロパティは、複数のセルで構成される範囲を指定するためにも使用できます。開始セルと終了セルをコロン(:)で結んで指定します。

' セルB15からD17までの矩形範囲を指定する
Range("B15:D17")

Cellsオブジェクト
 Cells(1, 1)のように、行番号と列番号を数値で指定する方法です。これは、Forループなどの繰り返し処理の中で、行や列の番号を動的に変化させながらセルを操作する場合に非常に強力です。Cells(行番号, 列番号)と覚ましょう。

' 20行目の2列目(B列)のセル、つまりB20セルを指定する
Cells(20, 2)

Forループのように変数を使って動的にセルを扱いたい場面では、Cellsオブジェクトの方が数値で直感的に行や列を扱えるため、実務では好まれる傾向にあります。
繰り返し処理
 For i = 1 To 10 の中で Cells(i, 1).Value = i のように、変数を使って動的にセルを指定する場合はCellsが不可欠です。

 セルの値を取得する
 セルの値を扱う際には、主に3つのプロパティを使い分けます。
  .Value :セルが持つ本来の値を扱います(数値、日付シリアル値など)。計算の対象とする場合は基本的にこれを使用します。
  .Text :セルに表示されている通りの文字列を取得します。表示形式が適用された後の見たままの値が必要な場合に使用します。
  .Formula :セルに入力されている数式そのものを文字列として取得・設定します。例:=SUM(A1:A3)

Range("A1"):A1セルというオブジェクトを指定します。
  .Value:「値」というプロパティを指定します。
 Range("A1").Value と記述することで、「A1セルの値」という情報を指し示すことができます。
  A1セルに「研修」という文字が入力されていると仮定し、その値をメッセージボックスで表示させてみましょう。 

Sub 値の取得()
    MsgBox Range("A1").Value
End Sub

このコードを実行すると、「研修」と表示されたメッセージボックスが現れます。処理の流れを分解すると、以下のようになります。
 ①Range("A1").Value によって、ExcelがA1セルの値(”研修”という文字列)を取得します。
 ②その結果が MsgBox 命令に渡され、画面に表示されます。

セルに値を入力する(代入の原則)
VBAにおいて、=は「等しい」という意味ではなく、「右辺の値を左辺に代入する」という意味の代入演算子です。セルに値を入力する方法です。ここでVBAにおける最も重要な原則、右から左へ。
 A = B というコードがあった場合、これは「=の右辺の値(B)を、左辺(A)に代入する」という意味になります。 「右に書いたものが、左に入る」と覚えましょう。例えば、A2セルに「テスト」という文字列を入力したい場合、以下のように記述します。

Sub 値の入力()
    Range("A2").Value = "テスト"
End Sub

これは、「”テスト”という文字列(右辺)を、A2セルのValueプロパティ(左辺)に代入しなさい」という命令になります。この原則を応用すると、あるセルの値を別のセルにコピーすることもできます。例えば、A1セルの値をA3セルにコピーする場合は、以下のようになります。

' A1セルの値を取得し、A3セルに代入する
Range("A3").Value = Range("A1").Value

このコードでは、まずVBAが右辺の Range("A1").Value を評価してA1セルの値を取得します。そして、その取得した結果を、左辺の Range("A3").Value に代入(設定)します。この「値の取得」と「値の入力(代入)」が、VBAによるExcel操作の根幹をなすアクションです。
もう一つのセルの指定方法
 Range("A1") の他に、Cells(行番号, 列番号) という指定方法もあります。例えば、Cells(1, 1) は1行目の1列目、つまりA1セルを指します。 Range"A1"のように固定の場所を指定するのに便利ですが、Cellsは後で学ぶ「繰り返し処理」などで、行番号を変数で動的に変更したい場合に絶大なパワーを発揮します。
基準セルからの相対位置指定
特定のセルを基準にして、そこから相対的に位置をずらしたセルや範囲を指定する便利なプロパティがあります。
Offsetプロパティ: Offset(行の移動量, 列の移動量)で、基準セルから指定した数だけ行・列をずらしたセルを取得します。
例: Range(“B2”).Offset(2, 1) は、B2セルから下に2行、右に1列移動した C4セル を指します。
注意: Offsetプロパティは、基準となるセル自身を含みません。
Resizeプロパティ Resize(行数, 列数)で、基準セルを左上の角として、指定した行数・列数の範囲にサイズを拡張します。
例: Range(“B3”).Resize(4, 3) は、B3セルを左上として 4行×3列の範囲(B3:D6) を指します。
注意: Resizeプロパティは、基準となるセル自身を含みます。
データ範囲の自動特定
 実務では、データの量が日々変動することがよくあります。そのため、「データが入力されている最終行」を自動で特定するテクニックは極めて重要です。
Endプロパティ: Ctrl + 矢印キーを押したときの動作と同じ動きをVBAで実現します。Range(“A1”).End(xlDown)は、A1セルから下方向へデータが連続している最終セルに移動します。Range(“A1”).End(xlDown)のような上から下への探索では、途中に空白があるとそこで止まってしまい、不正確な結果を招きます。
 以下のコードは、データが入力されている最終行の行番号を取得するための業界標準の定型句   CurrentRegionプロパティ :Range(“A1”).CurrentRegionは、A1セルを含む、空白行・空白列で囲まれたひと塊のデータ範囲全体を選択します。表全体を一度に扱いたい場合に非常に便利です。

制御構文

繰り返し処理:For…Nextステートメント
 同じ、あるいは類似した処理を指定した回数だけ繰り返すための最も基本的な構文がFor…Nextループです。早速、VBEでコードを書いて動きを確認しましょう。
 基本構文
  変数i(カウンター変数と呼ばれる)の値を1から10まで1ずつ増やしながら、ForとNextの間に記述された処理を10回繰り返します。ForループとCellsオブジェクトを組み合わせることで、非常に強力な処理が可能になります。例えば、A1からA10セルまでに連番を振る処理は以下のように記述できます。
For i = 1 To 10 Step 2 のようにStepを追加すると、カウンター変数を2つずつ増やすことができます(1, 3, 5…)。
逆順ループ For i = 10 To 1 Step -1 と記述することで、10から1へと逆順に処理を実行できます。行を削除する処理を行う際には、下の行から削除しないと行がずれて正しく処理できないため、この逆順ループが定石となります。

条件分岐:If…Then…Elseステートメント
「もし○○ならばAの処理を、そうでなければBの処理を行う」といった、条件に応じた処理の分岐を実現するのがIfステートメントです。
 基本構文
  Else以降は、条件が偽の場合に処理が不要であれば省略可能です。A列の数値が50以上であれば、B列に「合格」、50未満であれば「不合格」と入力する処理は以下のように記述できます。
 複数条件の組み合わせ And(かつ)やOr(または)といった論理演算子を使うことで、より複雑な条件分岐を作成できます。  If Range(“A1”).Value >= 80 And Range(“B1”).Value = “東京” Then …  入れ子(ネスト)構造 If文の中にさらにIf文を記述することで、段階的な条件判定が可能です。
コードの簡略化:Withステートメント
 同じオブジェクト(例えば、特定のセル)に対して、フォントの変更や値の入力など、複数の設定を連続して行う際に、コードの記述を簡潔にするのがWithステートメントです。
 以下のように、同じRange(“A1”)が何度も登場するコードは冗長で読みにくくなります。Withステートメントを使うと、対象オブジェクトを一度指定するだけで、その後の処理を.(ドット)から始めることができます。このように書くことで、対象オブジェクトの記述が一度にまとまり、コードがすっきりと読みやすくなります。

データ操作テクニック

最終行の動的な取得
データ量が日々変動するリストを扱う際、処理範囲の最終行を固定値で指定すると、データが増減した場合に対応できません。そのため、プログラム実行時にリストの最終行を動的に特定する手法が不可欠です。
最終行を取得するコード
VBAで最終行を取得するための標準的なコードは以下の通りです。このコードは、指定列のシート最下行から上方向へ最初のデータセルを探し、その行番号を返します。

' A列を基準に、データが入力されている最終行の行番号を取得する
Dim lastRow As Long
lastRow = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

このコードは、以下のステップで最終行を特定します。
1, Rows.Count: シート全体の行数を取得します(約104万行)。
2, Cells(Rows.Count, 1): 1列目(A列)の最も下のセル(例:A1048576)を指定します。
3, .End(xlUp): その最下段セルから、キーボードのCtrl + ↑キーを押した時と同じ動作を実行し、上方へ向かって最初に見つかるデータ入力済みのセルへジャンプします。
4, .Row: ジャンプしたセルの行番号を取得します。
オートフィルターによるデータ抽出 (AutoFilter)
AutoFilterメソッドを使用すると、VBAから表データを特定の条件で絞り込むことができます。これは、手作業で行うフィルター操作をコードで完全に再現する強力な機能です。
AutoFilterメソッドの基本的な構文は以下の通りです。Fieldには表の左から何列目を対象とするかを指定し、Criteria1には絞り込みたい条件を指定します

' Range("[表の左上のセル]").AutoFilter Field:=[列番号], Criteria1:=[抽出条件]
' 例:B24を左上とする表の2列目を「C」で絞り込む
Range("B24").AutoFilter Field:=2, Criteria1:="C"

フィルターの解除
設定したフィルターを解除するには、再度同じ範囲に対して引数を指定せずにAutoFilterメソッドを実行します。

' フィルターを解除
Range("B24").AutoFilter

コピー&ペースト
Copyメソッドを使用すると、指定したセル範囲をコピーし、別の場所に貼り付けることができます。構文は非常にシンプルです。
[コピー元範囲].Copy [貼り付け先セル]
コード例
以下の例では、B18からD20の範囲をコピーし、F18セルを左上の角として貼り付けます。

Range("B18:D20").Copy Range("F18")

ブックとアプリケーションの管理
これまでのシートやセルレベルの操作から視点を広げ、Excelブック(ファイル)全体の新規作成、保存、終了といった操作や、マクロの実行パフォーマンスを管理する方法について解説します。
新規ブックの作成と操作
Workbooks.Addメソッドを使用すると、新しいExcelブックを簡単に作成できます。
オブジェクト変数への格納
作成した直後のブックをオブジェクト変数に格納しておくことで、その後の操作(シートへの書き込みや保存など)を確実に行うことができます。

' 新しいブックを作成し、それをオブジェクト変数wbに格納する
Dim wb As Workbook
Set wb = Workbooks.Add

ブックの保存と終了
ブックに対する一連の処理が完了したら、Closeメソッドを使用してブックを閉じます。
メソッドの主要な引数
Closeメソッドの引数を指定することで、保存の有無やファイル名を制御できます。

引数設定値の例解説
SaveChangesTrue変更を保存して閉じます。
False変更を保存せずに閉じます。
FileName"[フルパス]¥[ファイル名].xlsx"SaveChanges:=Trueの際に、指定した名前と場所で保存します。いわゆる「名前を付けて保存」です。

ThisWorkbook.Pathプロパティは、マクロが記述されているブック自身のフォルダパスを文字列として取得する非常に便利な機能です。これと文字列連結演算子&を組み合わせることで、マクロファイルと同じ場所に、動的な名前を持つ新しいファイルを保存する処理を簡単に記述できます。

実行パフォーマンスの最適化
VBAで大量のデータを処理すると、画面の表示が何度も更新され、処理速度が低下したり、画面がちらついたりすることがあります。これを防ぎ、パフォーマンスを向上させるのが Application.ScreenUpdating プロパティです。マクロの実行中に画面描画を一時的に停止 (Falseに設定) することで、処理速度を大幅に向上させることができます。
マクロの開始地点でFalseに設定し、すべての処理が完了した直後にTrueに戻すのが基本的な使い方です。

Sub MyMacro()
    ' 画面更新を停止
    Application.ScreenUpdating = False
    
    ' ... 主要な処理 ...

    ' 画面更新を再開
    Application.ScreenUpdating = True
End Sub

組み込み関数の活用
VBAにあらかじめ用意されている便利な「組み込み関数」。関数とは、特定の処理(日付の計算、文字列の加工など)を実行し、その結果を返してくれる小さなプログラム部品です。これらを使いこなすことで、自分で一から複雑なロジックを組む必要がなくなり、より短いコードで高度な処理を実現できます。
日付・時刻操作関数
 日付や時刻を扱うための主要な関数です。レポート作成時の日付挿入やファイル名の生成などで頻繁に利用します。
Now: 現在の日付と時刻を取得します。(例: 2024/01/16 10:30:00)
Year(日付), Month(日付), Day(日付): 日付データからそれぞれ年、月、日の部分を数値として取り出します。
DateSerial(年, 月, 日): 年、月、日の3つの数値から、有効な日付データ(シリアル値)を作成します。
文字列操作関数
文字列を加工、抽出、変換するための関数です。データのクレンジング(整形)や情報抽出など、実務での利用頻度が非常に高いグループです。
関数名  
Len        文字列の長さを返します。
Left, Right           文字列の左端または右端から、指定した文字数分を抽出します。
Mid        文字列の指定した開始位置から、指定した文字数分を抽出します。
Replace  文字列内のある部分文字列を、別の文字列に置換します。不要な文字の削除にも使えます。
InStr      ある文字列が、別の文字列内のどこにあるかを位置(数値)で返します。見つからない場合は0を返します。
StrConv 文字列をひらがな、カタカナ、全角、半角などに変換します。
Format   数値や日付を、指定した書式設定の文字列に変換します。例:Format(Now, “yyyy年mm月dd日”) は “2024年01月16日” を返します。

ユーザーとの対話
マクロの実行中にユーザーに情報を伝えたり、ユーザーからの入力を受け付けたりするための関数です。
MsgBox (メッセージボックス) ユーザーにメッセージを表示します。処理の完了通知や注意喚起に使います。さらに、ボタンの種類を指定することで、「はい」「いいえ」などの選択をユーザーに求め、その選択結果(戻り値)に応じて処理を分岐させるといった応用も可能です。
InputBox (インプットボックス) ユーザーにテキストを入力してもらうためのダイアログボックスを表示します。入力された値を変数に格納し、後続の処理で利用するのが基本的な使い方です。これらの組み込み関数を適切に組み合わせることで、手作業では時間のかかるデータの整形や、ユーザーの操作に応じた柔軟な処理の自動化が可能になります。

シートとブックの操作
複数のシートやファイルを横断する処理は、月次レポートの自動作成や複数ファイルからのデータ集計など、大規模な業務自動化に不可欠なスキルです。ここをマスターすることで、VBAの活用範囲が飛躍的に広がります。
ワークシートの操作
シートの追加、削除、コピー、移動など、基本的なシート操作を学びます。実際に新しいシートを追加したり削除したりしながら進めましょう。

* シートの指定

  * 名前で指定: Sheets(“シート名”) (例: Sheets(“売上データ”))

  * インデックス番号で指定: Sheets(1) (左から1番目のシート)

* シートの追加 Sheets.Addで新しいシートを挿入します。AfterやBeforeという引数を使って、特定のシートの後ろや前に挿入する位置を指定できます。 Sheets.Add After:=Sheets(“売上データ”) ‘「売上データ」シートの後ろに追加

* シートの削除 Sheets(“シート名”).Deleteでシートを削除します。

* 警告メッセージの非表示 シートを削除する際などに表示される「完全に削除されます」という確認ダイアログは、マクロの自動実行を妨げます。これを表示させないためには、以下の定型句を使います。

* 処理が終わったら必ずTrueに戻すことを忘れないでください。これは実務における鉄則です。

* シートのコピーと移動 .Copyメソッドでコピー、.Moveメソッドで移動ができます。これらもAfterやBeforeで位置を指定できます。

8.2 ワークブック(ファイル)の操作

Excelファイルの新規作成、開封、保存、クローズといった一連の操作を学びます。

* ブックの新規作成: Workbooks.Add

* ブックを開く: Workbooks.Open “C:\Work\データ.xlsx”

* ブックの保存:

  * 上書き保存: 開いているブックオブジェクトに対して.Saveメソッドを実行します。 Workbooks(“データ.xlsx”).Save

  * 名前を付けて保存: .SaveAsメソッドを使用します。 ActiveWorkbook.SaveAs “C:\Work\レポート_202401.xlsx”

* ブックを閉じる: .Closeメソッドを使用します。この際、変更を保存するかどうかを指定する引数SaveChangesが非常に重要です。

  * Workbooks(“データ.xlsx”).Close SaveChanges:=True ‘ 保存して閉じる

  * Workbooks(“データ.xlsx”).Close SaveChanges:=False ‘ 保存せずに閉じる

8.3 複数ブック・シート間でのデータ連携

あるブックのシートから、別のブックのシートへ値をコピーするような、ファイル間連携の基本を学びます。

* 完全なオブジェクト指定 複数のブックを操作する際は、「どのブックの、どのシートの、どのセルなのか」をVBAに対して明確に指定する必要があります。これを怠ると、意図しないブックやシートを操作してしまい、エラーの原因となります。 Workbooks(“Book1.xlsx”).Sheets(“Sheet1”).Range(“A1”).Value

* 実用例 「データ.xlsx」のA1セルの値を、「レポート.xlsx」のB1セルにコピーする具体的なコードは以下のようになります。

これらの操作を習得することで、単一ファイル内の作業にとどまらず、複数のファイルにまたがる定型業務全体を一つのマクロで自動化する道が開けます。

マクロの実行方法とユーザーインターフェース

作成したマクロを自分以外のユーザーでも簡単に実行できるようにするための方法を学びます。マクロは作って終わりではありません。VBAの知識がない人でも直感的に使えるように提供することが、実務では非常に重要です。

9.1 さまざまな実行方法

VBEからF5キーで実行する方法は開発者向けです。エンドユーザー向けには、Excelの画面上から簡単に実行できる方法を提供する必要があります。

* VBEから実行: F5キーまたはツールバーの実行ボタン。コードのテストやデバッグ時に使用します。

* 「マクロ」ダイアログから実行: 開発タブ > マクロをクリックし、表示される一覧から実行したいマクロを選択して実行ボタンを押します。

* クイックアクセスツールバーから実行: Excelウィンドウの左上にあるクイックアクセスツールバーに頻繁に使うマクロを登録しておくと、ワンクリックで実行できて便利です。

9.2 ボタンや図形へのマクロ登録

エンドユーザーにとって最も直感的で分かりやすい実行方法は、シート上に配置したボタンや図形をクリックしてマクロを起動させる方法です。それでは、Excelシート上にボタンを配置してみましょう。

1. フォームコントロールのボタンを配置

  * 開発タブ > 挿入 > フォームコントロールの中から「ボタン」を選択します。

  * マウスポインタが十字に変わるので、シート上のボタンを配置したい場所でドラッグしてサイズを決めます。

2. マクロの登録

  * ボタンを配置すると、自動的に「マクロの登録」ダイアログが表示されます。

  * 一覧から、このボタンに割り当てたいプロシージャ(マクロ)を選択し、OKをクリックします。

  * これでボタンとマクロが紐付けられました。ボタンをクリックすると、登録したマクロが実行されます。

3. 図形(オートシェイプ)への登録 挿入タブから作成した四角形や円などの図形にも、同様にマクロを登録できます。

  * シート上に配置した図形を右クリックし、メニューからマクロの登録を選択します。

  * あとはボタンの時と同様に、割り当てたいマクロを選択すれば完了です。

4. ユーザー目線の重要性 実務で作成したマクロを他の人に使ってもらう際には、専門知識のない人でも迷わず使えるように、このボタン形式で提供することが基本となります。「このボタンを押せば、いつもの作業が完了します」という形にすることで、マクロの導入がスムーズに進み、業務改善の効果を最大限に発揮できます。

Word

Wordの基本概念と画面構成

画面構成

  • リボン: 画面上部に表示されるメニューバー(「ホーム」「挿入」「ページレイアウト」など)
  • クイックアクセスツールバー: 画面左上に表示される頻繁に使う機能のボタン
  • ステータスバー: 画面下部に表示される文書の情報(ページ数、単語数など)
  • ルーラー: 文書の余白やインデントを視覚的に確認・調整する水平・垂直の目盛り
  • ドキュメント領域: 文書を作成・編集する主要な部分

表示モード

  • 印刷レイアウト: 印刷結果に近い表示(デフォルト)
  • 閲覧モード: 画面に合わせて最適化された読みやすい表示
  • Webレイアウト: Webページのような表示
  • アウトライン: 文書の構造を階層表示
  • ドラフト: シンプルなテキスト中心の表示

基本的な操作方法

Wordの起動

  • Windows:
    • スタートメニュー→「Word」を選択
    • または検索バーに「Word」と入力して検索
  • macOS:
    • Finder→「アプリケーション」→「Microsoft Word」
    • または「Launchpad」から「Microsoft Word」

ファイルの操作

  • 新規作成: 「ファイル」タブ→「新規作成」→テンプレートを選択
  • 保存: 「ファイル」タブ→「保存」(Ctrl+S)または「名前を付けて保存」
  • 開く: 「ファイル」タブ→「開く」(Ctrl+O)→ファイルを選択
  • 印刷: 「ファイル」タブ→「印刷」(Ctrl+P)

リボンの使い方

  • タブの切り替え: クリックで各機能グループに切り替え
  • リボンの最小化: リボン右下の「^」アイコンをクリック
  • コンテキストタブ: 特定の操作(表の選択など)で表示される追加タブ

文書作成と編集

テキスト入力の基本

  • クリックして挿入ポイントを配置し、キーボードから文字を入力
  • Enter: 段落を作成(改行)
  • Shift+Enter: 改行だが段落は継続(ソフトリターン)

選択の操作

  • 単語の選択: 単語をダブルクリック
  • 段落の選択: 段落をトリプルクリック
  • 任意の範囲: クリックからドラッグ
  • 全選択: Ctrl+A

編集の基本

  • 切り取り: Ctrl+X
  • コピー: Ctrl+C
  • 貼り付け: Ctrl+V
  • 元に戻す: Ctrl+Z
  • やり直し: Ctrl+Y

検索と置換

  • 検索: Ctrl+F
  • 置換: Ctrl+H
  • 「詳細設定」で書式や特殊文字も検索可能

文字の書式設定

フォント設定

  • 「ホーム」タブ→「フォント」グループ
    • フォントの種類、サイズ、色の変更
    • 太字(Ctrl+B)、斜体(Ctrl+I)、下線(Ctrl+U)の適用
    • 取り消し線、上付き・下付き文字の設定

文字間隔の調整

  • 「ホーム」タブ→「フォント」グループの拡張メニュー→「詳細設定」タブ
    • 文字の拡大・縮小
    • 字間の調整

文字効果

  • 「ホーム」タブ→「フォント」グループから
    • 文字の影
    • 光彩
    • 反射などの効果

段落の書式設定

配置

  • 「ホーム」タブ→「段落」グループ
    • 左揃え(Ctrl+L)
    • 中央揃え(Ctrl+E)
    • 右揃え(Ctrl+R)
    • 両端揃え(Ctrl+J)

インデント

  • 「ホーム」タブ→「段落」グループ
    • インデント増(Tab)
    • インデント減(Shift+Tab)
    • ルーラーのマーカーで調整も可能

行間

  • 「ホーム」タブ→「段落」グループ→「行間」
    • 1.0、1.15、1.5、2.0など
    • 「行間設定」で詳細調整

箇条書きと段落番号

  • 「ホーム」タブ→「段落」グループ
    • 箇条書き
    • 段落番号
    • アウトライン(階層付き箇条書き)

スタイルの適用

  • 「ホーム」タブ→「スタイル」グループ
    • 見出し1、見出し2などのスタイルを選択
    • スタイルの変更や新規作成が可能

ページ設定と印刷

ページ設定

  • 「レイアウト」タブ
    • 余白の設定
    • 用紙サイズの選択
    • 縦/横の向きの設定
    • 段組みの設定

セクション区切り

  • 「レイアウト」タブ→「区切り」→「セクション区切り」
    • 次のページから開始
    • 現在のページから開始
    • 次の偶数/奇数ページから開始

ヘッダーとフッター

  • 「挿入」タブ→「ヘッダー」または「フッター」
    • ページ番号の挿入
    • 日付や時刻の挿入
    • カスタムテキストの入力

印刷プレビューと設定

  • 「ファイル」タブ→「印刷」
    • 印刷プレビューの確認
    • プリンターの選択
    • 印刷範囲や部数の設定

表の作成と編集

表の挿入

  1. 「挿入」タブ→「表」
  2. グリッドで行数と列数を選択、または「表の挿入」ダイアログで指定

表の編集

  • セルへのデータ入力
  • セルの選択: クリック、ドラッグ、または表内で移動(Tab)
  • 行/列の追加: 右クリックメニューまたは「テーブルツール」の「レイアウト」タブ
  • 行/列の削除: 同上

表のデザイン

  • 「テーブルツール」の「デザイン」タブ
    • 罫線のスタイル・太さ・色
    • 網掛けの色
    • テーブルスタイルの適用

セルの結合・分割

  • セルを選択→右クリック→「セルの結合」または「セルの分割」
  • 「テーブルツール」の「レイアウト」タブでも操作可能

画像や図形の挿入

画像の挿入

  • 「挿入」タブ→「画像」→ファイルを選択
  • または「オンライン画像」でWeb上の画像を検索・挿入

図形の挿入

  • 「挿入」タブ→「図形」→図形を選択→ドラッグして描画

SmartArtの挿入

  • 「挿入」タブ→「SmartArt」→テンプレートを選択

画像・図形の調整

  • 「図ツール」または「描画ツール」タブ
    • サイズ調整
    • 位置調整
    • 文字列の折り返し設定
    • 効果(影、反射、光彩など)の適用

目次と索引

目次の作成

  1. 見出しスタイルを適用して文書を構造化
  2. 目次を挿入したい位置にカーソルを置く
  3. 「参考資料」タブ→「目次」→スタイルを選択

目次の更新

  • 目次を右クリック→「フィールドの更新」
  • または「参考資料」タブ→「目次の更新」

索引の作成

  1. 索引に含める単語を選択→「参考資料」タブ→「索引の項目指定」
  2. 索引を挿入したい位置にカーソルを置く
  3. 「参考資料」タブ→「索引の挿入」

校閲機能

スペルチェックと文法チェック

  • 「校閲」タブ→「スペルチェック」(F7)
  • 赤または青の波線で表示される誤りを右クリックで修正案を表示

変更履歴の記録

  • 「校閲」タブ→「変更履歴の記録」
  • 追加・削除・書式変更が色分け表示される

コメントの挿入

  • 「校閲」タブ→「新しいコメント」
  • コメントの表示/非表示の切り替え

共同編集

複数ユーザーによる同時編集が可能

文書をクラウド(OneDriveなど)に保存して共有

PowerPoint

PowerPointの基本操作

1. PowerPointの起動と基本画面

起動方法

  • スタートメニューから「PowerPoint」を選択
  • または、デスクトップのPowerPointアイコンをダブルクリック

基本画面の説明

  • リボン: 画面上部にあるタブ別のメニュー
  • スライドペイン: 左側にあるスライドの一覧表示
  • 編集エリア: 中央の現在のスライド編集領域
  • ノートペイン: 下部にあるスピーカーノート入力領域

2. プレゼンテーションの作成

新規作成

  1. 「ファイル」タブ→「新規作成」を選択
  2. テンプレートを選択するか、「空白のプレゼンテーション」を選択

テンプレートの利用

  1. 「ファイル」タブ→「新規作成」を選択
  2. オンラインテンプレートを閲覧して適切なものを選択

3. スライドの追加と編集

スライドの追加

  1. 「ホーム」タブ→「新しいスライド」をクリック
  2. または、スライドペインで右クリック→「新しいスライド」を選択

スライドレイアウトの変更

  1. 「ホーム」タブ→「レイアウト」をクリック
  2. 希望するレイアウトを選択(タイトルスライド、タイトルとコンテンツなど)

スライドの並べ替え

  • スライドペインでスライドをドラッグ&ドロップして移動

スライドの削除

  • スライドペインでスライドを右クリック→「スライドの削除」を選択

4. テキストの入力と編集

テキストの入力

  1. スライド上のテキストボックスをクリック
  2. テキストを入力

テキストの書式設定

  1. テキストを選択
  2. 「ホーム」タブのフォント設定を利用
    • フォントの種類・サイズ変更
    • 太字(B)・斜体(I)・下線(U)の設定
    • テキストの色変更
    • 配置(左揃え・中央揃え・右揃え)の変更

箇条書きの作成

  1. テキストを選択
  2. 「ホーム」タブの箇条書きボタンをクリック

5. 図形・画像の挿入

図形の挿入

  1. 「挿入」タブ→「図形」をクリック
  2. 希望する図形を選択
  3. スライド上でドラッグして図形を描画

画像の挿入

  1. 「挿入」タブ→「画像」→「このデバイス」をクリック
  2. 画像ファイルを選択して「挿入」をクリック

オブジェクトのサイズ変更

  • オブジェクトの周りの○をドラッグしてサイズ変更

オブジェクトの移動

  • オブジェクトをクリックして選択し、ドラッグして移動

6. アニメーションの設定

アニメーションの追加

  1. アニメーションを付けたいオブジェクトを選択
  2. 「アニメーション」タブをクリック
  3. アニメーションギャラリーから希望するアニメーションを選択

アニメーションのタイミング設定

  1. 「アニメーション」タブ→「タイミング」グループ
  2. 「開始」を選択(クリック時、直前のアニメーションと同時、直前のアニメーションの後)
  3. 「期間」で速度を調整

アニメーションの順序変更

  • 「アニメーション」タブ→「アニメーションウィンドウ」→表示されたパネルでアニメーションをドラッグして順序変更

7. スライドショーの実行

スライドショーの開始

  • F5キーを押すと最初のスライドから開始
  • Shift+F5キーで現在のスライドから開始
  • または「スライドショー」タブ→「最初から」または「現在のスライドから」をクリック

スライドショー中の操作

  • 次のスライドへ:マウスクリック、スペースキー、右矢印キー、下矢印キー
  • 前のスライドへ:左矢印キー、上矢印キー、Backspaceキー
  • 特定のスライドへジャンプ:スライド番号を入力してEnter
  • スライドショーの終了:Escキー

8. プレゼンテーションの保存

通常保存

  1. 「ファイル」タブ→「保存」または「名前を付けて保存」を選択
  2. ファイル名を入力
  3. 保存場所を選択
  4. 「保存」をクリック

別形式での保存

  1. 「ファイル」タブ→「エクスポート」を選択
  2. PDF/XPSドキュメントの作成、ビデオの作成などを選択
  3. 画面の指示に従って保存

自動保存の設定

自動保存の間隔を設定

「ファイル」タブ→「オプション」→「保存」

レポート

Translate »