和風スパゲティのレシピ

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

書式設定・表示設定

第1行の書式を最終行までコピーする - Rows

書式のコピーにはPasteSpecialが思い浮かびますが、行ごとコピーする場合はAutoFillメソッドが使用できます。クリップボードを介さず安全高速ですので、フィルハンドルのようなコピー処理にはこちらを使用しましょう。

グラフ軸目盛りの範囲・間隔を統一するマクロ

せっかくの同形式グラフなのに、軸上限・軸下限・目盛り幅が違うとグラフ間で比較ができませんので、これを自動設定するマクロを紹介します。120%上限のグラフを100%上限に一括変更するときにも活用できます。

行高・列幅を設定する - RowHeight/ColumnWidth

セルの行高を設定するにはRangeオブジェクトのRowHeightプロパティ、列幅にはRangeオブジェクトのColumnWidthプロパティを使用します。セルの値に合わせて自動調整を行う場合はAutoFitメソッドを使用します。

行・列の表示/非表示を切り替える - Hidden

行・列の表示/非表示を切り替えるにはHiddenプロパティを使用します。Trueが非表示、Falseが再表示です。行/列全体に実行する必要があるため、Rows/Columns、EntireRow/Columnから実行してください。

NumberFormatLocalとNumberFormatの違い

NumberFormatLocalとNumberFormatの違いを解説します。両者とも「セルの表示形式」を設定するプロパティですが、G/標準、\、[赤]など日本語で表された表示形式を設定可能な点が違います。

セルの表示形式を設定する-NumberFormatLocal

桁区切りカンマの「#,##0」などセルの表示形式を設定するにはRangeオブジェクトのNumberFormatLocalプロパティを使用します。セル.NumberFormatLocal=セル.NumberFormatLocalでコピーも可能です。

1行おきに背景色を設定して縞模様にする

テーブル形式の表データに縞模様を付けるコードを紹介します。表の範囲を取得できる場合は表エリア.Rows、列のエリアを指定する場合はIntersectを利用して行ごとにRangeを取得し、偶数/奇数で判定して着色します。

表示されているシートのみをループする - Visible

表示されているシートだけをループするにはForEach文で取得したWorksheetのVisibleプロパティを調べてTrueにシートだけに処理を実行します。他の条件も判定する場合はIf文を重ねるかAnd演算子を使用します。

ワークシートをスクロールする - ScrollRow/Column

ワークシートをスクロールする方法を解説します。行列番号指定でスクロールしたい場合はScrollRow/Columnプロパティ、現在位置を基準にスクロールしたい場合は、Large/SmallScrollメソッドを使用します。

セル内文字列を文字ごとに操作する - Characters

セル内の文字列を文字ごとに操作する、RangeオブジェクトのCharactersプロパティを解説します。書式を設定するFont、テキストを取得、置換するText、削除・挿入を行うDelete/Insetメソッドなどが使用できます。

セル内の文字列を一部だけ着色する - Characters

セル内の文字列を一部だけ着色(書式変更)する方法を解説します。RangeオブジェクトのCharactersプロパティ、Fontプロパティを使用します。Bold、Name、Sizeで太字、サイズ、フォント種類も設定できます。

セル内の特定文字列だけを着色する - Characters

セル内の特定の文字列を着色する方法を解説します。Instr関数で文字列の位置を特定し、Charactersプロパティを用いて特定文字列だけを書式設定します。サイズ/太字/フォント/背景色なども同じように設定可能です。

改ページを挿入・解除・位置取得する-PageBreak

印刷時の改ページを挿入・解除したり、位置を取得する方法を解説します。WorksheetオブジェクトのH/VPageBreaksプロパティを使う方法と、RangeオブジェクトのPageBreakプロパティを使う方法があります。

データの区切りごとに改ページを挿入する

小計行や商品種別の切り替わる行など、データの区切りごとに改ページを挿入する方法を解説します。PageBreakプロパティで既存の改ページを判定しながら、条件を満たす行ごとに同プロパティで改ページを設定します。

改ページプレビュー・ページレイアウトを設定する

ワークシートのウィンドウ表示モード「標準」「ページ レイアウト」「改ページ プレビュー」をVBAから設定する方法を解説します。設定にはWindowオブジェクトの「View」プロパティを使用します。

VBA課題002「最も近い色を見つけよう!」回答コード

コミュニティ「Excel-Fun.xls*」にて毎月出題される、VBAの問題に対する私の回答ソースコードを掲載いたします。今回掲載するコードは第1回課題共有会の課題でもあった「最も近い色を見つけよう!」問題です。

VBA課題001「スケジュール着色」回答コード

コミュニティ「Excel-Fun.xls*」にて毎月出題される、VBAの問題に対する私の回答ソースコードを掲載いたします。今回掲載するコードは第1回課題共有会の課題でもあった「スケジュール着色」問題です。

図形内テキストの不要な改行を制御するマクロ

図形内テキストが不要な位置で改行されてしまう問題は「テキストを図形からはみ出して表示する」「図形内でテキストを折り返す」の設定である程度抑えることができます。これを一括実行するマクロを紹介します。

テキストを図形からはみ出して表示する

図形内テキストの改行を制御するとき「テキストを図形からはみ出して表示する」をチェックし、「図形内でテキストを折り返す」のチェックを外す方法が便利です。これをVBAから設定する方法を解説します。

色(RGB値)の操作を補助するクラスを作る

クラスモジュールづくりのサンプルとして「色の操作を補助するクラス」を作ってみました。Property Get&Letプロシージャの勉強にピッタリな題材なので、練習がてらコードを眺めてみてください。

データ閲覧機能を1クリックで一括設定するマクロ

生CSVなどに対し、列幅自動調整、オートフィルターの設置、ウィンドウ枠の固定、印刷タイトルの設定、すべての列を1ページに印刷、上下左右の余白0をすべてセットするマクロを紹介します。

セルの文字配置(水平/垂直位置など)を設定する

セルの書式設定の配置タブにある、水平/垂直位置や、文字の折り返し、縮小して全体表示、縦書きなどの文字方向設定をVBAで行う方法を解説します。例えば水平方向を中央寄せにするには、Range.HorizontalAlignment = xlCenterを実行します。

すべてのシートを一括で再表示するマクロ

すべてのシートを一発で再表示するマクロを紹介します。For EachですべてのWorksheetを走査し、ワークシート.Visible = True によって再表示していくコードです。ブックの保護が有効だとエラーになるため、ProtectStructureを判定して回避します。

着色を残して条件付き書式を削除するマクロ

条件付き書式を、背景/文字色をセル書式として残して削除する方法を解説します。条件付き書式を通常書式に変換するとも言えます。表示色DisplayFormatが元のFormatと異なる場合に、FormatにDisplayFormatを代入することで実現できます。

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

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

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

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

Shapesにはドロップダウンリストの▼が含まれる

For Eachで全図形を処理したとき変な動きをする、Shapes.Countを数えるとなぜか1個多い、入力規則の▼が消えてリストから選べない、あたりにお困りの方は、Shapesがドロップダウンリストの▼を含む罠に落ちていないかご確認ください。

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

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

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

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

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

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