和風スパゲティのレシピ

日本語でコーディングするExcelVBA

汎用マクロ・便利ツール

ウィンドウ枠固定と印刷タイトルを同時設定するマクロ

シート最上部を常に表示する設定は、ディスプレイ用の「ウィンドウ枠の固定」と、印刷用の「印刷タイトル」の2つの設定があります。この2つの設定は同じ位置に設定することが多いので、同時設定するショートカットを作ってしまいましょう。

上下左右の印刷余白を0にするマクロ

上下左右の印刷余白を0にするマクロを紹介します。PageSetupオブジェクトに○○Marginというプロパティが6つあるので、それをすべて0にするだけです。マウスだと20回以上クリックが必要な作業をワンクリックにできるのはとても便利ですね。

アクティブブックの保存フォルダを開くマクロ

現在のブックが保存されているフォルダを、エクスプローラーで開くマクロを紹介します。「今作業してるファイルと同じフォルダにあるファイルを開きたい」をワンクリックでやるためのマクロですね。Shell関数1行で簡単に実装できます。

個人用マクロブックの作り方と使い方3選

「いつでも使えるコード」を書くのに便利な個人用マクロブックの作り方・使い方を紹介します。「マクロをツールバーやショートカットキーにセット」「汎用関数集(ライブラリ)の保管場所」「コードテンプレート置き場」が3大活用法です。

すべてのシートをA1セル選択状態にするマクロ

すべてのシートをA1セル選択状態にするマクロを紹介します。For Eachで全シートをActivateし、Range("A1").Selectをして回るだけの簡単なコードですが、ウィンドウ枠の固定に対応する必要があるため、ActiveWindow.ScrollRow = 1も実行します。

特定のセル範囲内にある図形を処理/選択する

Shapeの位置がセル範囲内にあるかどうかを判定して、その範囲内のShapeを処理する方法を解説します。TopLeftCell/BottomRightCellでShapeを含む最小のセル範囲を取得し、それとセル範囲のIntersectが一致するかを判定して処理を行います。

すべての図形(オブジェクト)を選択するマクロ

すべての図形オブジェクト(Shape)を選択するマクロを紹介します。すべての図形を削除したり、一括で移動したりするときに便利なマクロですね。この処理には専用のメソッド「Shapes.SelectAll」が用意されているため、コードはとても簡単です。

すべての図形(オブジェクト)を削除する

すべての図形オブジェクトを一括で削除するコードを紹介します。すべて削除したい場合はActiveSheet.DrawingObjects.Deleteで簡単に実行できます。グラフだけを残すような場合は、ForEachでひとつずつShape.Typeを判定して削除します。

選択エリアの0値を置換で消去するマクロ

値が「0」のセルを置換でクリアするマクロを紹介します。単純な処理ですのでコードも単純で、Selection.Replace 0, "", lookat:=xlWhole1行でOKです。ただし、置換はChangeイベントと相性が悪いので.EnableEvents = Falseを挟んで実行します。

アクティブシートを新規ブックにコピーするマクロ

アクティブシートを新規ブックにコピーするマクロを紹介します。コードはたったの一行で、ActiveWindow.SelectedSheets.Copyのみです。「個人用マクロブック」などに搭載しツールバーやショートカットキーへ登録して使ってください。

列見出しをアルファベット⇔数字で切り替える

列の見出し表示「ABC…」を、「123…」に切り替えるマクロを紹介します。Cells(R, ○)←この○に入る数字を、指折り数えなくて済むためのスイッチですね。実行型のマクロですので、個人用マクロブックなどに搭載して使ってください。

列番号のEnum定数コードを自動生成するマクロ

表形式のデータを定数で定義するとき、Enum(列挙型)定数が便利ですが、毎回書くのは面倒なので、マクロをマクロに書いてもらいましょう。見出し範囲を選択して実行すると、イミディエイトウィンドウにコードを生成して出力するマクロです。

ワークシートのオブジェクト名をマクロで設定する

ワークシートのオブジェクト名をマクロで設定する方法を紹介します。シートオブジェクト名での指定は便利なのですが、設定が面倒なので、それを「アクティブシートのオブジェクト名を、シート名と同じ名前にする」マクロでやってしまおうという魂胆です。

印刷映えする格子罫線を自動で引くマクロ

「外枠が実線で中が細い点線の格子罫線」を自動で引くマクロを紹介します。普通の格子罫線は印刷すると太くて気になりますが、一番細い点線を使うと、印刷時は点線ではなく細い直線になります。表をキレイに印刷したいときは、この設定で罫線を引きましょう。

選択範囲を1枚の用紙にクイック印刷するマクロ

選択中のセル範囲を、1枚の用紙にクイック印刷するマクロを紹介します。「選択範囲を印刷範囲に⇒上下左右の余白を0に⇒水平方向をセンタリング⇒シートを1ページに印刷に⇒範囲が横長なら用紙を横に⇒印刷する」を一括で行うマクロです。

汎用マクロ・便利ツール用の共通関数について

本ブログで紹介している、汎用マクロ・便利ツールは、特に頻出の処理を、共通の関数として抽出して使っています。共通関数のソースコードと解説を以下に記しておきますので、コードの説明が読みたい方はご利用ください。

数式を値に固定してついでに#N/Aも消すマクロ

数式を値に固定したあと、#N/Aエラーを消去するマクロを紹介します。何がやりたいかは明らかですね(笑)お忙しい方は、ソースコードをコピーして、使い方例のように実行しちゃえばOKです。コードをしっかり読みたい方は、解説もどうぞ。

選択セル範囲に丸数字を連番で入力するマクロ

選択したセル範囲に、丸数字を連番で入力するマクロを紹介します。簡単な表やグラフの入る資料・マニュアルなんかは、Wordで作るより、Excelで作ったほうが絶対楽です。このマクロをじゃんじゃん使って、サクサクExcel文書を作っていきましょう。

文字色・背景色を設定するマクロを書くマクロ

機械的に書けるコードは、マクロをマクロに書いてもらうテクニックが使えます。「セルの文字色・背景色を設定する」マクロを作るとき、①使う色のRGB値を調べる、②その値で着色するコードを書く、の2つを、セットでマクロにやってもらいましょう。