VBA樹林– category –
-
【VBA】ユーザーフォームが閉じる時にマクロを実行する方法 (Terminate)
はじめに VBAのユーザーフォームを操作画面として提供する場合、「フォームが閉じられたタイミングで、後片付けの処理を自動で実行したい」ということがあります。例えば、入力された内容をシートに書き出したり、作業ログを記録したり、といったケースで... -
【VBA】ユーザーフォームが閉じられるのをキャンセルする方法 (QueryClose)
はじめに ユーザーフォームで入力画面を作成する際、「必須項目が入力されるまで、フォームを閉じられないようにしたい」という制御が必要になることがあります。例えば、利用規約への同意チェックボックスがオンになるまで、右上の「×」ボタンを無効化し... -
【VBA】ユーザーフォームを閉じる2つの方法 Unload と Hide の違い
はじめに VBAのユーザーフォームを閉じる際、Unload ステートメントと .Hide メソッドという、よく似た2つの方法があるのをご存知でしょうか? どちらもフォームを画面から消すという点では同じですが、メモリ上の扱いやフォームの状態において、明確な違... -
【VBA】ユーザーフォームの表示位置を指定する方法 (中央/手動)
はじめに VBAで作成したユーザーフォームは、デフォルト設定のままだと、意図しない場所に表示されてしまうことがあります。ツールの操作性を向上させるためには、フォームを常に画面の中央や、Excelウィンドウの近くなど、分かりやすい位置に表示させるこ... -
【VBA】個人用マクロブックをWorkbooksコレクションのループ対象から外す方法
はじめに 「開いている全てのブックに対して、同じ処理を実行したい」というマクロを作成する際、For Each book In Workbooks というループを使うのが一般的です。 しかし、この方法だと、通常は非表示になっている「個人用マクロブック(PERSONAL.XLSB)... -
【VBA】ユーザーフォームのボタンから標準モジュールのマクロを実行する方法
はじめに VBAで本格的なツールを作成する際、ユーザーフォームを使って対話的な操作画面を作ることがよくあります。その際、「フォーム上のボタンをクリックしたら、標準モジュールに書いてあるメインの処理を実行したい」という場面は必ず出てきます。 ユ... -
【VBA】アドインインストール時にショートカットキーを自動登録する方法
はじめに 自作したExcelアドインを他の人に使ってもらう際、アドイン内の便利なマクロにショートカットキーを割り当てておくと、格段に使いやすくなります。しかし、利用者に手動でショートカットキーを登録してもらうのは不親切ですよね。 VBAには、アド... -
【VBA】Excelアドインをマクロで無効化(アンインストール)する方法
はじめに 特定のツールをアドインとして提供している場合、その機能を一時的にオフにしたり、不要になった際に簡単に無効化したりする機能があると親切です。利用者が手動で「Excelのオプション」を開いて、アドインのチェックを外すのは少し手間がかかり... -
【VBA】Excelアドイン(.xlam)をマクロで自動インストールする方法
はじめに 自作の便利なマクロを「アドイン(.xlamファイル)」として配布する際、利用者に手動でインストールしてもらうのは少し手間がかかり、説明も大変ですよね。 もし、アドインのインストールから有効化までを自動で行うマクロがあれば、利用者はボタ... -
【VBA】入力値で選択範囲の数値を一括更新(パーセント増減)するマクロ
はじめに 売上予測や予算計画を立てる際、「もし全体の数値が5%増加したらどうなるだろう?」「もし10%減少したら…?」といったシミュレーションを手軽に行いたいときがありますよね。 選択した範囲の数値を一つずつ手で計算し直すのは大変ですが、VBAの A... -
【VBA】選択範囲の重複した値に色を付けるマクロ(条件付き書式)
はじめに 顧客リストや商品コード一覧を扱っていると、「重複しているデータがないかチェックしたい」という場面が頻繁にあります。目視で探すのは大変ですが、Excelの「条件付き書式」を使えば、重複した値を持つセルを自動でハイライト(色付け)できま... -
【VBA】Excelブックの保存先フォルダをエクスプローラーで開くマクロ
はじめに 「このExcelファイルが保存されているフォルダを開いて、関連ファイルも一緒に見たい」 作業をしていると、このように感じることが頻繁にありますよね。 通常は「ファイル」タブから「情報」を選び、表示されたパスをクリックする…という手順が必... -
【VBA】ブック内の「名前の定義」を一括削除するマクロ【取扱注意】
はじめに Excelの「名前の定義」は、特定のセル範囲に分かりやすい名前を付けて、数式などで便利に利用できる機能です。しかし、ブックのコピーを繰り返したり、多くの人によって編集されたりするうちに、不要な定義やリンク切れの定義が大量に溜まってし... -
【VBA】数式エラーのセル(#N/Aなど)だけを一括クリアする方法
はじめに Excelでデータ処理をしていると、#N/A、#DIV/0!、#REF! といった数式エラーが表示されることがよくあります。これらのエラーは計算過程で必要な場合もありますが、最終的なレポートとして提出する際には、見た目を整えるために非表示にしたり、削... -
【VBA】セルの数式を結果の値に変換(値貼り)するマクロ
はじめに Excelで作成した計算シートを他の人に共有する際、「計算式を消して、見えている結果の数値だけを送りたい」ということはよくありますよね。 通常は、範囲をコピーして、同じ場所に「形式を選択して貼り付け」から「値」を選ぶ(通称「値貼り」)... -
【VBA】罫線を除いて貼り付け(ペースト)するマクロ
はじめに Excelでせっかく綺麗に書式を整えたレポートに、別の場所からコピーしたセルの太い罫線が貼り付けられてしまい、デザインが崩れてしまった…という経験はありませんか? 😥 「形式を選択して貼り付け」から「罫線を除くすべて」を選ぶのも一つの手... -
【VBA】新規シートを常に末尾(一番右)に追加する方法
はじめに Excelで新しいシートを追加すると、通常は現在アクティブなシートの左側に挿入されます。しかし、月別の集計シートや、作業履歴のログシートなど、「常に一番右端(末尾)にシートを追加したい」というケースは非常に多いですよね。 毎回手動でシ... -
【VBA】Excelの表示倍率を順番に切り替える(ズームサイクル)マクロ
はじめに Excelでの作業中、細かいデータを見るときは拡大し、シート全体を俯瞰したいときは縮小する、というように、表示倍率(ズーム)の変更は頻繁に行う操作の一つです。 しかし、毎回右下のスライダーを操作したり、Ctrlキーを押しながらマウスホイー... -
【VBA】数式のセルだけを保護する方法(入力セルは編集可能に)
はじめに 「計算式が入力されたセルだけを保護して、他の人が誤って数式を壊すのを防ぎたい」「でも、数値を入力するセルは自由に編集できるようにしたい」 複数人で共有するExcelファイルでは、このような場面がよくありますよね。手作業で一つずつセルの... -
【VBA】オートフィルタのオン/オフを切り替えるマクロ
はじめに Excelでデータ集計や分析を行う際、オートフィルタは欠かせない機能の一つですよね。しかし、フィルタを適用したり解除したりするために、毎回リボンの「データ」タブから「フィルタ」ボタンをクリックするのは、少し手間がかかります。 このフィ... -
【VBA】非表示シートを全て一括で再表示するマクロ
はじめに 多数のシートが含まれるExcelブックで、複数のシートが非表示になっていることはありませんか? 一枚ずつ右クリックして「再表示」を選ぶ作業は、シートの数が増えるほど大変な手間になります。特に、何十枚ものシートを一度に表示させたい場合、... -
【VBA】表示/非表示を切り替える便利なマクロ集(数式、枠線、ふりがな等)
はじめに Excelを使っていると、「一時的に数式全体を確認したい」「印刷イメージを見るために枠線を消したい」「ふりがなをまとめて表示したい」など、様々な表示設定を切り替えたい場面があります。 メニューから毎回設定を変更するのは少し面倒ですが、... -
【VBA】マクロをショートカットキーに登録する方法 (Application.OnKey)
はじめに よく使うVBAマクロを、毎回「マクロ」ダイアログから実行するのは少し手間ですよね。もし、Ctrl + Shift + C のようなショートカットキー一発でマクロを呼び出せたら、作業効率が格段にアップします。 VBAの Application.OnKey メソッドを使えば... -
【VBA】個人用マクロブック(PERSONAL.XLSB)の場所を特定し削除する方法
はじめに VBAを使い始めると耳にする「個人用マクロブック」。どのExcelファイルを開いていても共通で使えるマクロを保存しておける、とても便利な隠しファイルです。 しかし、「マクロの整理のために一度リセットしたい」「動作がおかしくなったので再作... -
【VBA】Excelの一覧表をもとにファイル名を一括変更する方法 (FSO)
はじめに 「商品コードと商品名のリストはあるが、実際の画像ファイル名が商品コードのままで分かりにくい…」「Excelで管理しているファイルリスト通りに、ファイル名を一括で修正したい」 このような、Excelシートの情報を使って、大量のファイル名を一括... -
【VBA】FSOでファイル名の連番をずらす(リネームする)方法
はじめに 「ファイル名の連番の間に、新しいファイルを追加したい」「特定の番号以降の連番を、まとめて後ろにずらしたい」...。ファイル整理をしていると、このように連番を部分的に修正したくなることがあります。 一つずつ手作業で名前を変更するのは、... -
【VBA】FSOで複数ファイルを更新日時順に一括連番リネームする方法
はじめに デジカメで撮影した大量の写真ファイルや、日々作成される業務レポート。「ファイル名がバラバラで整理しにくい」「時系列に並んだ連番にしたい」と感じたことはありませんか? 一つずつ手作業でリネームするのは大変ですが、VBAの FileSystemObj... -
【VBA】FSOで2つのファイル名を入れ替える方法|Nameプロパティ活用術
はじめに ファイルの整理やリネーム作業をVBAで自動化していると、「AというファイルとBというファイルの名前を、そっくりそのまま入れ替えたい」という特殊なケースに遭遇することがあります。例えば、連番の画像ファイルの名前を一つずらしたり、特定の2... -
【VBA】FSOでフォルダをファイルごと一括削除する方法|DeleteFolderメソッド
はじめに VBAでファイルの整理や管理を自動化していると、「不要になったフォルダを中身ごと、きれいに削除したい」という場面が出てきます。特に、一時的に作成した作業フォルダや、古いバックアップフォルダなどを一掃したい場合に便利です。 VBAの File... -
【VBA】FSOでフォルダを丸ごと複製する方法|バックアップ作成を自動化しよう
はじめに 日々の業務でExcelファイルや関連資料を管理していると、「作業フォルダを丸ごとバックアップしたい」と感じることはありませんか? 手作業でのコピーは簡単ですが、毎回となると手間がかかり、ミスも発生しやすくなります。 そんな時、VBAの**Fi...