汎用マクロ・便利ツール
フィルターで抽出されているデータだけをコピーして別ブックに出力するマクロを紹介します。書式などを保持するため、一旦シートごとコピーして見出し以下を消し、再度元シートからコピーして実行します。
表形式のデータを加工する際、指定列のデータ部分だけを選択したいことが良くあります。途中に空セルがあるなどでCtrl+Shift+↓が使えない時に用に、この範囲を自動取得してくれるマクロを作りましたのでご活用ください。
データを並び替える際Excelは「ふりがな」順を優先するため、稀に同じデータでも違う場所に並び変わってしまうことがあります。その対策として、選択範囲のフリガナを一括で削除するマクロを紹介します。
アクティブブック内の全シートを1シートに結合するマクロを紹介します。見出し行を選択して実行することで見出し以下だけを結合します。内部で汎用関数を動かしており、シート名条件も指定できますのでご活用ください。
アクティブブックと同フォルダ内のブックを1シートに結合するマクロを紹介します。内部で汎用関数を動かしており、ブック名・シート名・拡張子の条件を指定できますのでこちらも併せてご活用ください。
LT会「VBA開発者のための便利マクロ勉強会」の配布資料と配信アーカイブを共有します。コードを自動生成したり、デバッグの支援ツールを作ったり、マクロを作るためのマクロの発表をしましたのでご活用ください。
Enum定義は通常ひとつのモジュール内にまとめた方が便利ですが、場合によっては専用のモジュールを作りたいときがあります。その時のためにシート名と同名のモジュールを挿入してEnumコードを記載するマクロを紹介します。
マニュアルやフロー図などがExcelで作られていると、ほとんどのテキストが図形内にあるということもよくあります。これを一括でセルに出力するマクロを紹介します。
Wordの新規保存ダイアルログは先頭行のタイトルが保存ファイル名初期値になって開きます。この機能をExcelでも使えるよう、選択セルの値をブック名初期値として新規保存ダイアログを開くマクロを紹介します。
自シートを参照する「自シート名!」が数式内に入ってしまうと、読みにくくなってしまうだけでなく、ソートすると式が破損するという罠を生んでしまいます。今回はこれを自動でしょう供するマクロを紹介します。
セルの結合解除にはショートカットキーが設定されていません。これをショートカットキーに登録するためにセル結合機能をマクロで再現してみました。複数行実行時に自動で横方向結合する機能も付けましたのでご活用ください。
セルの右下にカーソルを合わせたときに出る✚のコピー機能をオートフィル(フィルハンドル)と呼びます。これは便利なのですがショートカットがないため、マクロで再現してショートカットに登録してみましょう。
現在作業中のブックを保存する際、上書き保存ではなく別名で保存しておきたい場面があります。ブック名_yyyymmddhhmm_作業メモという名称でファイルのバックアップを取るマクロを紹介します。
せっかくの同形式グラフなのに、軸上限・軸下限・目盛り幅が違うとグラフ間で比較ができませんので、これを自動設定するマクロを紹介します。120%上限のグラフを100%上限に一括変更するときにも活用できます。
全マクロブックで共有するような自作汎用関数(ライブラリ)を、ワンタッチでアクティブブックにコピーするマクロを紹介します。Scripting Runtimeの参照もついでに実行しているため、FSOやDictionaryも即使用可能です。
フローチャートなどに折れ線矢印コネクタをよく使いますが、なぜかこの矢印は2回曲がるものしかありません。これに対応するため、ガイド図形を始点と終点に配置した矢印コネクタを挿入するマクロを紹介します。
憎きF1「ヘルプ」を無効化し、別の機能で上書きするマクロを紹介します。F1キーを効かなくするだけでなく、F2キーにしてしまったり、Ctrl+1を設定したり、自作マクロを設定することも可能です。
新規ブックや読取専用ブックでCtrl+Sを実行したときに出る名前を付けて保存ダイアログがフォルダパスをペーストできる場所がないものに改悪されたため、これを旧来のダイアログに戻すマクロを紹介します。
Excel2024からActiveXコントロールが使用できなくなり、設置したマクロ(イベント)も実行できなくなります。この問題に対応するにあたり、アクティブシートの全ActiveXボタンを一括で置き換えるマクロを紹介します。
Excelの新関数には便利なものがたくさんありますが、XLOOKUPは2021以降、TEXTAFTER/BEFOREは2024以降でないと#NAME?エラーになってしまいます。これを365ユーザー側で検知するためにリスト化するマクロを紹介します。
図形内テキストが不要な位置で改行されてしまう問題は「テキストを図形からはみ出して表示する」「図形内でテキストを折り返す」の設定である程度抑えることができます。これを一括実行するマクロを紹介します。
生CSVなどに対し、列幅自動調整、オートフィルターの設置、ウィンドウ枠の固定、印刷タイトルの設定、すべての列を1ページに印刷、上下左右の余白0をすべてセットするマクロを紹介します。
空のフォルダを一括で削除する方法を解説します。親フォルダのSubFoldersをForEachでループし、FilesとSubFoldersのCOuntが共に0である子フォルダをDeleteすることで実行できます。下層フォルダまで検索する場合は、再帰呼出を追加します。
マクロの実行時間はTimer関数で0.00秒単位で測ることができます。開始時刻 = Timer、終了時刻 = Timer、終了時刻-開始時刻で求まるコードですが、これをクラスにすることで管理する変数が2つ減り、さらに簡単に呼び出せるようになります。
シート上に記載したフォルダ構成表を元に各フォルダを一括で作成していくマクロを紹介します。ツールとしても便利ですが、「プロシージャ分割」「汎用関数」のとてもいい題材ですので、コードの参考としてもご活用ください。
すべてのシートを一発で再表示するマクロを紹介します。For EachですべてのWorksheetを走査し、ワークシート.Visible = True によって再表示していくコードです。ブックの保護が有効だとエラーになるため、ProtectStructureを判定して回避します。
条件付き書式を、背景/文字色をセル書式として残して削除する方法を解説します。条件付き書式を通常書式に変換するとも言えます。表示色DisplayFormatが元のFormatと異なる場合に、FormatにDisplayFormatを代入することで実現できます。
値や数式が一つもない空行を一括で削除するマクロを紹介します。アクティブシートに実行するタイプの便利マクロですので、Excel起動時に裏で開かれる「個人用マクロブック」などに搭載し、ツールバーやリボンに配置して使ってください。
セルの値を元に、フォルダを一括で作成するコードを紹介します。対象のセルをFor文やFor Each文ですべて取得、「親フォルダパス & "\" & セル値」で目的のフォルダパスを生成し、MkDirステートメントで実際のフォルダを作成します。
2022年から赤帯になったマクロブックへの警告とロックは、プロパティ設定、信頼済みサイト設定ほかに、Workbooks.Openで開くことでも解除できます。これを利用してActiveWorkbookを開き直すことで、一時的のこのロックを解除できます。