-
【VBA】Array関数で配列を簡単・手軽に作成する方法
はじめに VBAで配列を使う際、Dimで宣言してから、myList(0) = ..., myList(1) = ... のように、一行ずつ要素を代入していくのが基本です。しかし、あらかじめ中に入れるデータが決まっている場合、この方法は少し冗長に感じられますよね。 そんなときに非... -
【VBA】配列のインデックス番号を1から始める方法と LBound/UBound の使い方
はじめに VBAの配列は、デフォルトではインデックス番号(各要素を識別する番号)が 0 から始まります。しかし、例えば「1月〜12月」のデータのように、1 から始まる番号で管理したい場合も多いですよね。 VBAでは、配列を宣言する際にインデックスの開始... -
【VBA入門】配列の使い方を徹底解説!宣言からループ処理まで
はじめに VBAで複数のデータを扱う際、「変数」をデータの数だけ用意するのは大変ですよね。例えば、12ヶ月分の売上データを扱うのに、12個の変数を宣言するのは非効率です。 こんなときに活躍するのが「配列」です。配列は、複数のデータを格納できる、仕... -
【VBA入門】変数と定数の使い方、スコープ(適用範囲)の違いを徹底解説
はじめに VBAでプログラミングを始めるにあたり、最初に理解すべき最も重要な概念の一つが「変数」と「定数」です。これらは、数値や文字列といったデータを一時的に格納しておくための「箱」のようなものです。 変数 (Variable): 中身を自由に入れ替えら... -
【VBA】Excelで入力したセルの値を自動で読み上げる機能(Speak on Enter)を切り替える方法
はじめに Excelには、セルに値を入力して Enter キーを押した瞬間に、その入力内容を音声で自動的に読み上げる機能が備わっています。これは、伝票などの紙媒体から数値を連続して入力する際に、目線をExcelシートに戻すことなく、耳で入力内容を確認でき... -
【VBA】Excelに任意のテキスト(文字列)を音声で読み上げさせる方法
はじめに Excel VBAの音声読み上げ機能は、セルの値を読み上げるだけでなく、プログラム内で作成した任意の文字列を自由に話させることもできます。 この機能を活用すれば、特定のシートを開いたときに「入力時の注意事項」を音声でアナウンスしたり、マク... -
【VBA】Excelのセル範囲の値を音声で読み上げる方法 (Speakメソッド)
はじめに Excelに、入力されたデータを音声で読み上げてくれる機能があるのをご存知でしょうか? この機能は、主にアクセシビリティ向上のために用意されていますが、データ入力後の目視と聴覚によるダブルチェック(読み合わせ確認)にも非常に役立ちます... -
【VBA】ボタンや図形に登録されたマクロを動的に切り替える方法 (OnAction)
はじめに Excelのシート上に配置したボタンや図形をクリックしたときに実行されるマクロを、状況に応じて動的に切り替えたいと思ったことはありませんか? 例えば、同じボタンを「開始」ボタンとして使い、一度クリックされたら「停止」ボタンに変化させ、... -
【VBA】シート上のスピンボタンを使いこなす!主要プロパティ徹底解説
はじめに Excelのシート上で、ユーザーに数値を簡単に入力させたい場合、「フォームコントロール」の「スピンボタン」が非常に便利です。マウスで上下の矢印をクリックするだけで、数値を増減させることができるため、キーボードでの入力ミスを防ぎ、直感... -
【VBA】シート上のオプションボタンをグループボックスで管理し、選択項目を判定する方法
はじめに Excelのシート上で、「問1. プランを選択」「問2. 支払い方法を選択」のように、複数の独立した設問にオプションボタンで回答させたい場合、そのまま配置すると全てのボタンが一つのグループになってしまいます。 この問題を解決するのが、「フォ... -
【VBA】シート上のオプションボタンで選択された項目を判定する方法
はじめに Excelのシート上で、ユーザーに複数の選択肢から一つだけを選ばせる場合、「フォームコントロール」の「オプションボタン」が役立ちます。アンケートや設定シートなどで、排他的な選択を促すのに最適です。 VBAを使えば、シート上に配置された複... -
【VBA】シート上のチェックボックスを使いこなす!主要プロパティ解説 (Caption, Value)
はじめに Excelのシート上に配置できる「フォームコントロール」のチェックボックスは、タスクの完了確認や、オプションのオン/オフを切り替える際に非常に便利なUI(ユーザーインターフェース)です。 VBAでこのチェックボックスを操作するためには、その... -
【VBA】シート上のコンボボックス(ドロップダウン)を使いこなす!主要プロパティ解説
はじめに Excelのシート上に配置できる「フォームコントロール」のコンボボックス(VBA上では DropDown オブジェクト)は、省スペースでユーザーに選択肢を提示できる便利なコントロールです。 VBAでこのコンボボックスを自在に操るためには、その主要なプ... -
【VBA】シート上のリストボックスを使いこなす!主要プロパティ徹底解説
はじめに Excelのシート上に配置できる「フォームコントロール」のリストボックスは、ユーザーに選択肢を提示するための非常に強力なツールです。VBAでこのリストボックスを自在に操るためには、その主要なプロパティを理解することが不可欠です。 この記... -
【VBA】シート上のコントロールを種類別コレクション (CheckBoxes等)で操作する方法
はじめに Excelのシート上に配置した「フォームコントロール」をVBAで操作する際、前回は Shapes コレクションを経由する方法をご紹介しました。しかしVBAには、より直接的にコントロールを扱うための、コントロールの種類ごとに用意された専用のコレクシ... -
【VBA】シート上のフォームコントロールを操作する方法 (ControlFormat オブジェクト)
はじめに Excelのワークシートには、「フォームコントロール」と「ActiveXコントロール」という2種類のコントロールを配置できます。このうち、より手軽に使えるのが「フォームコントロール」です。 通常、これらのコントロールの値は、LinkedCell(リンク... -
【VBA】ユーザーフォームにコントロールを動的に追加し、イベントを処理する方法
はじめに VBAのユーザーフォームでは、通常、開発時に手動でコントロールを配置します。しかし、「シートのデータ数に応じて、必要な数だけボタンを自動生成したい」といったように、プログラムの実行時にコントロールの数や種類を決めたい場合があります... -
【VBA】ユーザーフォームのタブオーダーを設定して操作性を向上させる方法
はじめに VBAのユーザーフォームで、テキストボックスやボタンを配置した後に Tab キーを押すと、フォーカスが意図しない順番で飛んでしまい、使いにくいと感じたことはありませんか? このフォーカスが移動する順番のことを「タブオーダー」と呼びます。... -
【VBA】ユーザーフォームでフォーカスを制御する方法 (SetFocus と Enterイベント)
はじめに VBAのユーザーフォームにおいて、「フォーカス」とは、どのコントロールが現在アクティブになっているか(キーボード入力を受け付ける状態か)を示す概念です。ユーザーがフォームを開いたときに、最初から特定のテキストボックスにカーソルが当... -
【VBA】コンボボックスの使い方ガイド(ドロップダウンリストの作成と値の取得)
はじめに VBAのユーザーフォームで、部署名や商品カテゴリなど、あらかじめ決められた選択肢の中からユーザーに一つを選んでもらう場合、「コンボボックス」コントロールが非常に便利です。コンボボックスは、クリックすると選択肢がドロップダウン形式で... -
【VBA】リストボックスの項目を追加・削除・全クリアする方法
はじめに ユーザーフォームのリストボックスは、固定のリストを表示するだけでなく、ユーザーの操作に応じて項目を動的に追加したり、選択した項目を削除したり、リスト全体を**空(クリア)**にしたりすることができます。これにより、ショッピングカート... -
【VBA】リストボックスで複数選択を可能にし、選択項目を全て取得する方法
はじめに ユーザーフォームのリストボックスは、通常は一つの項目しか選択できません。しかし、例えば「複数の商品をカートに追加する」「複数のファイルを選択して処理する」といった場面では、複数の項目を一度に選択できるようにしたいですよね。 リス... -
【VBA】リストボックスの表示内容(値)をマクロで変更・再フォーマットする方法
はじめに ユーザーフォームのリストボックスにシートの表を表示した後、「特定の列の数値を3桁のゼロ埋めにしたい」「商品名の後ろに特定の文字列を追加したい」といったように、表示されている内容を整形・加工したい場合があります。 一度リストボックス... -
【VBA】リストボックスで選択された項目の値を取得する方法(複数列対応)
はじめに ユーザーフォームのリストボックスでユーザーに項目を選択してもらった後、その「選択された行のデータを取得する」のは、VBAツールの開発において最も基本的な操作の一つです。特に、複数列のリストボックスの場合、選択された行の特定の列(例:... -
【VBA】シートの表をユーザーフォームのリストボックスに表示する方法(複数列)
はじめに VBAのユーザーフォームで、商品一覧や顧客名簿といった、Excelシート上の表(テーブル)データをそのまま表示したい、という場面は非常に多くあります。 「リストボックス」コントロールは、複数列表示に対応しており、いくつかのプロパティを設... -
【VBA】ユーザーフォームのリストボックスに項目を追加(表示)する方法
はじめに VBAのユーザーフォームで、ユーザーに複数の選択肢の中から項目を選んでもらう際、「リストボックス」コントロールは非常に便利です。ドロップダウンリストとは異なり、常に複数の項目を一覧で表示できるため、選択肢の全体像が分かりやすいのが... -
【VBA】複数の質問項目をオプションボタンで選択させる方法(フレーム活用)
はじめに ユーザーフォームでアンケートを作成する際、「問1. 年代を選択」「問2. 性別を選択」のように、複数の設問に対してそれぞれ択一式の回答を求める場面があります。 しかし、オプションボタンをそのままフォームに配置すると、全てのボタンが一つ... -
【VBA】ユーザーフォームのオプションボタンで、どの項目が選択されたか判定する方法
はじめに VBAのユーザーフォームで、「複数の選択肢の中から、ユーザーに一つだけを選んでもらいたい」という場面は非常に多くあります。例えば、性別の選択(男性/女性)や、アンケートの評価(良い/普通/悪い)などです。このような択一式の選択には、「... -
【VBA】クラスモジュールで複数チェックボックスのイベント処理を共通化する方法
はじめに ユーザーフォームに同じようなチェックボックスを10個配置し、「どれか一つでもクリックされたら、対応するシートのセルに状態を書き込む」という処理を実装したい場合、CheckBox1_Click(), CheckBox2_Click()... と10個のイベントプロシージャを... -
【VBA】チェックボックスの状態が変わった瞬間、リアルタイムで処理を実行する方法
はじめに VBAのユーザーフォームで、チェックボックスがオン/オフされた瞬間に、何らかの処理をリアルタイムで実行したい、という場面は非常に多くあります。例えば、「『その他』のチェックボックスがオンになったら、詳細入力用のテキストボックスを有効...