教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

サイトマップ

 

基本操作

ExcelVBAって何?

Excelで開発タブを表示する方法

マクロ/VBAを書く(記述する)方法

マクロ/VBAをボタンに割り当てる方法

ExcelVBAマクロを有効化する方法

ExcelVBAのプロシージャとは?

プロジージャ(Sub・Function)の使い方

コメントの使い方

変数って何ですか?定義や宣言の方法

MsgBoxの使い方

CellsやRangeの使い方

デバッグ及びコンパイルする方法

明示的な変数の宣言方法

 

構文

IF文(条件分岐)の使い方

Select Case文(条件分岐)の使い方

For~Next文(繰り返し処理)の使い方

Do~Loop文(繰り返し処理)の使い方

With文(オブジェクト名の記述省略)の使い方

GoTo文(処理を途中でスキップ)の使い方

Exit文(処理の途中で終了)の使い方

Call文(他のプロシージャ呼び出し)の使い方

 

ブック操作

ブックを開く方法(Open)

ブックを閉じる方法(Close)

マクロが実行されているファイル名(ThisWorkBook.Name)を取得する方法

現在アクティブなファイル名を取得(ActiveWorkBook.Name)する方法

Excelウィンドウを全画面表示(DisplayFullScreen)する方法

Excelウィンドウの表示サイズを設定(WindowState)する方法

Excelブックの表示サイズを指定(Height・Width)する方法

Excelブックを拡大/縮小表示(Zoom)する方法

Excelブックを整列(Arrange)させる方法

ブックを新規作成(Add)する方法

ブックをアクティブ(Activate)にする方法

アクティブなブックを保存(Save)する方法

ブックの内容が変更されたかどうかを判断(Saved)する方法

ブック名を指定して保存(SaveAs)する方法

Excelを終了(Application.Quit)させる方法

ブックを保護(Protect)又は保護解除(UnProtect)する方法

アクティブなブックのパスを取得(ActiveWorkbook.Path)する方法

開いているブックの数を取得(Workbooks.Count)する方法

ブックのイベントプロシージャを作成する方法

ブックがアクティブになった時に発生するイベントプロシージャの作成方法

ブックが非アクティブになった時に発生するイベントプロシージャの作成方法

ブックを閉じる時に発生するイベントプロシージャの作成方法

ブックを印刷する時に発生するイベントプロシージャの作成方法

ブックに新しいシートを追加した時に発生するイベントプロシージャの作成方法

ブックを開いた時に発生するイベントプロシージャの作成方法

ブックを保存する時に発生するイベントプロシージャの作成方法

ブック内シートがアクティブになった時に発生するイベントプロシージャの作成方法

ブック内シートがダブルクリックされた時に発生するイベントプロシージャの作成方法

ブック内シートが右クリックされた時に発生するイベントプロシージャの作成方法

ブック内シートが再計算された時に発生するイベントプロシージャの作成方法

ブック内シートが変更された時に発生するイベントプロシージャの作成方法

 

シート操作

シートを選択(Select)にする方法

シートをアクティブ(Activate)にする方法

新規シートを追加作成(Add)する方法

シートを非表示/表示(Visible)にする方法

シート見出しを非表示/表示(DisplayWorkbookTabs)にする方法

シートを削除(Delete)する方法

開いているブック内のシートの数を取得(Count)する方法

シートを保護(Protect)又は保護解除(UnProtect)する方法

シートのイベントプロシージャを作成する方法

シートがアクティブになった時に発生するイベントプロシージャの作成方法

シートが非アクティブになった時に発生するイベントプロシージャの作成方法

シートで選択範囲が変更された時に発生するイベントプロシージャの作成方法

シートがダブルクリックされた時に発生するイベントプロシージャの作成方法

シートが右クリックされた時に発生するイベントプロシージャの作成方法

シートが再計算された時に発生するイベントプロシージャの作成方法

シートが変更された時に発生するイベントプロシージャの作成方法

 

セル操作

セル範囲を選択(Select)する方法

アクティブセルのアドレスを取得(Row・Column)する方法

選択したセル範囲のデータをクリア(ClearContents)する方法

セル範囲をコピー(Copy)する方法

セル範囲を切り取る(Cut)する方法

選択した範囲のセルを結合(MergeCells)する方法

セル範囲に名前を付ける(Name)方法

セル範囲内を並べ替え(Sort)する方法

セルのフォントサイズ(Font.Size)を変更する方法

セルのフォント名(Font.Name)を変更する方法

セルのフォントスタイル(Font.FontStyle)を変更する方法

セルのフォント色(Font.ColorIndex)を変更する方法

セルの文字列に取り消し線(Font.Strikethrough)を設定する方法

セルの文字列に上付き(Font.Superscript)を設定する方法

セルの文字列に下付き(Font.Subscript)を設定する方法

セルの文字列に下線(Font.Underline)を設定する方法

セルのパターン(Interior.Pattern)を変更する方法

セルの背景色(Interior.ColorIndex)を変更する方法

セルに数式を入力(Formula)する方法

セルのロックを設定又は設定解除(Locked)する方法

セル幅(列幅)を最適化(AutoFit)する方法

入力されているデータをセル幅に合わせて折り返す(WrapText)方法

文字列幅をセル幅に合わせる(ShrinkToFit)方法

セルを表示/非表示(Hidden)にする方法

行または列を削除(Delete)する方法

行または列を挿入(Insert)する方法

オートフィルタ(AutoFilter)によるデータの抽出方法

指定範囲のレコード件数(Rows.Count)を調べる方法

最終行(End(xlUp).Row)と最終列(End(xlToLeft).Column)を調べる方法

セルに罫線(実線)を引く方法

色々なスタイルの罫線を引く方法

罫線の太さを変更する方法

 

印刷

シートを印刷する方法

水平方向/垂直方向に改ページを挿入する方法

プリンタを選択するダイアログボックスを表示する方法

印刷方向を設定する方法

印刷する用紙サイズを設定する方法

印刷の倍率を設定する方法

ページの余白を設定する方法

印刷位置をページの中央に設定する方法

印刷範囲を1ページに収める方法

印刷時のページ先頭番号を設定する方法

印刷される総ページ数を調べる方法

行番号と列番号を印刷する方法

枠線を印刷する方法

白黒で印刷する方法

セルのエラーチェック結果を印刷するかどうか制御する方法

ヘッダーを設定する方法

フッターを設定する方法

ヘッダー及びフッターで使用するVBAコード

ヘッダー及びフッターで使用する書式コード

 

フォーム&コントロール

(フォーム)

フォームを作成する方法

フォームを表示及び閉じるする方法

フォームのタイトルを設定する方法

フォームの背景色を設定する方法

画面内のフォームの表示位置を指定する方法

フォームが表示されていても他の操作ができる/できない状態にする方法

フォームを表示する直前に処理を実行する方法

フォームがアクティブになった時に処理を実行する方法

フォームが非アクティブになった時に処理を実行する方法

フォームがクリックされた時に処理を実行する方法

フォームがダブルクリックされた時に処理を実行する方法

フォームを閉じる直前に処理を実行する方法

フォームの[X]ボタンでフォームを閉じられない様にする方法

フォーム内コントロールのタブオーダーを設定する方法

(ラベル)

ラベル文字の表示位置を設定する方法

ラベルの背景色を設定する方法

ラベルの表示スタイルを設定する方法

ラベルに表示する文字列を設定する方法

ラベルのフォントの書式を設定する方法

ラベルを利用して処理の進捗状況を表示する方法

ラベルを利用して処理を中断できるプログレスバーを作成する方法

(テキストボックス)

テキストボックスに入力可能な文字数を指定する方法

テキストボックスの入力モードを設定する方法

パスワードを入力するテキストボックスを作成する方法

複数行を入力できるテキストボックスを作成する方法

Enterキーで改行できるテキストボックスを作成する方法

テキストボックスとセルを連動させる方法

テキストボックス内の入力されたデータの表示位置を設定する方法

テキストボックスにスクロールバーを表示する方法

テキストボックスの値を取得や設定する方法①

テキストボックスの値を取得や設定する方法②

テキストボックスを選択できない様に設定する方法

テストボックスに表示する数字を区切り書式で表示する方法

数字だけが入力可能なテキストボックスを作成する方法

(コンボボックス)

コンボボックスに値を直接入力できない様に設定する方法

コンボボックスでオートコンプリート機能を利用する方法

コンボボックスのドロップダウンリストに表示する最大行数を設定する方法

コンボボックスの既定値を設定する方法

ドロップダウンリストに存在する値だけを入力できる様にする方法

(リストボックス)

リストボックスに表示するリストのセル範囲を設定する方法

リストボックスに表示するセル範囲をコードで設定する方法

リストボックスに行単位でデータを追加する方法

リストボックスで選択されているデータを削除する方法

リストボックスの全てのデータを削除する方法

リストボックスに複数列のデータを表示する方法

リストボックスに列見出しを表示する方法

リストボックス内の列幅を設定する方法

リストボックスで選択されているデータをセルに入力する方法

複数列のリストボックスに行単位でデータを追加する方法

リストボックス内のデータの選択状態を解除する方法

リストボックスで複数行を選択できる様にする方法

リストボックスで選択された複数行の値を取得する方法

リストボックス内の選択された複数行を纏めて解除する方法

リストボックスに表示するデータの先頭行を設定する方法

2つのリストボックスでデータのやり取りをする方法

(チェックボックス)

チェックボックスの状態を取得する方法

チェックボックスの状態に応じてコントロールの表示/非表示を切り替える方法

(オプションボタン)

オプションボタンの状態を取得する方法

フレーム内で選択されたオプションボタンを取得する方法

(トグルボタン)

トグルボタンの状態を取得する方法

トグルボタンをロックする方法

(フレーム)

(コマンドボタン)

フォーカスがなくてもEnterキーでクリックできるボタンを作成する方法

フォーカスがなくてもEscキーでクリックできるキャンセルボタンを作成する方法

コマンドボタンをクリックした時に実行されるプロシージャを作成する方法

コマンドボタンの有効/無効を切り替える方法

コマンドボタンの表示/非表示を切り替える方法

Shiftキーを押しながらクリックした時だけ処理を実行するコマンドボタンを設定する方法

コマンドボタンをクリックしてマウスポインタの形状を変更する方法

(タブストリップ)

タブストリップにタブを追加する方法

(マルチページ)

マルチページにタブを追加する方法

(スクロールバー)

スクロールバーの最大値と最小値を設定する方法

スクロールバーの値とラベルの表示を連動させる方法

スクロールボックスのスクロール幅を設定する方法①

スクロールボックスのスクロール幅を設定する方法②

(スピンボタン)

スピンボタンとテキストボックスを連動させる方法

スピンボタンをクリックした時に指定した範囲内のデータのみ表示する方法

(イメージ)

イメージの大きさに合わせてた画像の縦横比率を設定する方法

イメージコントロールの外枠を非表示にする方法

[ファイルを開く]ダイアログボックスで指定した画像ファイルをイメージに表示する方法

(ListView)

ListViewコントロールの組込方法

ListViewを使用してデータを表形式で表示する方法

 

関数(ステートメント)

(日付/時刻)

Date関数の使い方(年/月/日を引数として日付を作成)

DateAdd関数の使い方(指定日付に対して指定された時間/日/月/年を加算・減算)

DateDiff関数の使い方(指定した2つの日付に対する時間間隔を算出)

DatePart関数の使い方(指定した日付から特定情報を抽出)

DateSerial関数の使い方(年/月/日を指定して日付を作成)

DateValue関数の使い方(文字列日付を日付に変換する)

Day関数の使い方(日付から日を取り出す)

Hour関数の使い方(時刻から時間を取り出す)

Minute関数の使い方(時刻から分を取り出す)

Month関数の使い方(日付から月を取り出す)

Now関数の使い方(現在の日時を表示する)

Second関数の使い方(時刻から秒を取り出す)

Time関数の使い方(現在の時刻を表示する)

TimeSerial関数の使い方(指定した時/分/秒を元に時刻を表示する)

TimeValue関数の使い方(文字列時刻を時刻に変換する)

Timer関数の使い方(経過秒数の計測)

WeekDay関数の使い方(指定した日付から曜日を判定する)

WeekdayName関数の使い方(曜日の名前を判定する)

Year関数の使い方(日付から年を取り出す)

(文字列操作)

Format関数の使い方(データの表示書式を変換する)

Instr関数の使い方(文字列の中から指定の文字位置を特定する)

LCase関数の使い方(アルファベットの大文字を小文字に変換する)

Left関数の使い方(文字列の先頭から指定文字数分だけを抜き出す)

Len関数の使い方(文字列の文字数を調べる)

Mid関数の使い方(文字列の指定文字から指定文字数分だけを抜き出す)

InStr関数の使い方(文字列内で特定の文字列を検索してその位置を返す)

Replace関数の使い方(文字列中にある特定文字を別文字に変換する)

Right関数の使い方(文字列の右端から指定文字数分だけを抜き出す)

StrComp関数の使い方(2つの文字列を比較する)

StrConv関数の使い方(文字列の形式を変換する)

String関数の使い方(同じ文字を繰り返す横棒グラフの作成方)

Trim関数の使い方(文字列前後の空白を削除)

UCase関数の使い方(アルファベットの小文字を大文字に変換する)

Val関数の使い方(文字列を数値に変換する)

(型変換)

CStr関数の使い方(数値を文字列に変換する)

CDate関数の使い方(文字列を日付型にデータ変換する)

(データ判定)

IsNumeric関数の使い方(数値として扱えるかどうかを判定する)

IsDate関数の使い方(日付や時刻として扱えるかどうかを判定する)

IsArray関数の使い方(配列かどうかを判定する)

IsEmpty関数の使い方(Emptyかどうかを判定して返す)

IsError関数の使い方(エラーかどうかを判定する)

IsNull関数の使い方(変数に入力された値がNullかどうかを判定する)

VarType関数の使い方(データ型を調べて結果を数値で返す)

(配列)

Array関数の使い方(指定した要素で作成された配列を返す)

Filter関数の使い方(配列の中から条件に一致する要素を取り出す)

Join関数の使い方(配列の要素を結合させる)

LBound関数の使い方(配列の下限値を調べる)

Split関数の使い方(区切り文字で区切られた文字列を配列に返す)

UBound関数の使い方(配列の上限値を調べる)

(数学/財務)

Application.WorksheetFunction.Roundの使い方(数値を四捨五入する)

Fix関数の使い方(小数点以下を切り捨てる)

Int関数の使い方(小数点以下を切り捨てる)

Rnd関数の使い方(乱数を発生させる)

Randomizeステートメントの使い方(ランダムな値を生成するための初期化)

(ファイル操作)

ChDriveステートメントの使い方(ドライブを変更する)

ChDirステートメントの使い方(フォルダを変更する)

CurDirステートメントの使い方(指定ドライブにおける現在のフォルダを文字列で返す)

Dir関数の使い方(指定したファイルまたはフォルダの名前を返す)

(その他)

DoEvents関数の使い方(Excelに制御を渡す)

InputBox関数の使い方(ダイアログボックス入力された文字列を返す)

MsgBox関数の使い方(メッセージボックスを表示)

Shell関数の使い方(外部の実行可能プログラムを実行)

Quit関数の使い方(即座にプログラムを終了する)

 

演算子

足し算をする方法

引き算をする方法

掛け算をする方法

割り算をする方法

文字列を結合する方法

論理演算子の使い方

比較演算子の使い方

割り算した結果の余り(Mod)を求めるの方法

割り算の商(¥)を求める方法

オブジェクトを比較(Is)する方法

 

その他の操作

処理中の画面ちらつきを止める(ScreenUpdating)方法

ステータスバーにメッセージを表示(Application.StatusBar)方法

警告メッセージを非表示にする(Application.DisplayAlerts)方法

他のアプリケーションを起動する(Shell)方法

マウスポインタの形状を変更する方法

Excelのバージョン情報を取得(Version)する方法

OSのバージョン情報を取得(OperatingSystem)する方法

他のアプリケーションにキーを送る(SendKeys)方法

Excelタイトルバーの名前を変更(Application.Caption)する方法

マウスのホイールをズーム機能に設定(RollZoom)する方法

処理を一時停止(Application.Wait)する方法

 

Windows API

WindowsAPIって何?

ログイン名を取得(GetUserName)する方法

コンピュータ名を取得(GetComputerName)する方法

デスクトップの幅と高さを取得(GetSystemMetrics)する方法

Windowsが起動している時間を取得(GetTickCount)する方法

Windowsディレクトリのパスを取得(GetWindowsDirectory)する方法

音声ファイルを再生(sndPlaySound)する方法

共有フォルダへ接続(WNetAddConnection2)する方法

共有フォルダを切断(WNetCancelConnection2)する方法

アプリケーションの重複起動を回避する(FindWindow)する方法

プロセスハンドルを取得(OpenProcess)及び解放(CloseHandle)する方法

プログラム実行を待機(GetExitCodeProcess)する方法

直接メッセージを送信しアプリケーションを終了(SendMessage)する方法

ウィンドウのキャプションタイトルを取得(GetWindowText)する方法

 

外部アプリケーション連携

(Access)

Accessについて

AccessとExcelを連携するための事前準備(AccessデータをExcelで活用)

Accessに接続→データ操作(取得・追加・更新・削除)→切断する方法

Accessのテーブルデータを検索する方法

Accessのテーブルデータを全て取り込む方法

Accessテーブルのフィールド名(項目名)を取り込む方法

(SQL)

SQLについて

SQLのSELECT文の使い方(データベースから情報を抽出)

SQLのINSERT文の使い方(データベースに新しい行を追加)

SQLのUPDATE文の使い方(既存の行のデータを更新)

SQLのDELETE文の使い方(データベースから行を削除)

 

ツール(サンプル)

顧客情報の管理を目的としたツール(顧客情報管理ツール)

在庫管理を目的としたツール(在庫管理ツール)

入退室状況を簡易的に管理できるツール(入退室管理ツール)

クイズ形式で問題を出題できるツール(問題出題ツール)

会議室の予約管理を目的としたツール(会議室予約管理ツール)

購買関係の情報管理を目的としたツール(購買情報管理ツール)

従業員情報の管理を目的としたツール(従業員管理ツール)

指定したディレクトリに保管されているファイル名を取得するツール(保管ファイル名取得ツール)

データの転記作業を簡素化するツール(転記作業簡素化ツール)

時間計測ができるデモツールを紹介(ストップウォッチデモツール)

指定された時間で処理が自動実行されるデモツールを紹介(信号機デモツール)