和風スパゲティのレシピ

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

2026-07-01から1ヶ月間の記事一覧

グループ内図形のTopLeftCellはグループ全体の左上を取得する

グループ化Shapeは、 内部の各子Shape・親グループShapeいずれから実行しても,、TopLeftCell/BottomRightCellはグループ全体の設置セルを返します。TopやHeightは正しく動くのでこちらをご利用ください。

指定の座標(ポイント)にあるセルを取得する

指定の座標(ポイント)にあるセルを取得する方法を解説します。Top座標・Left座標から直接そのセルを取得する機能はありませんので、RangeオブジェクトのTop・Leftプロパティを取得して検索します。

図形(Shape)が設置されたセルを取得する - TopLeftCell/BottomRightCell

図形の設置されたセルを調べるには、左上のセルはTopLeftCellプロパティ、右下のセルはBottomRightCellプロパティで取得できます。この2つをRangeプロパティに渡せばセル範囲を取得することができます。

数式を指定のシート/範囲だけ再計算する - Calculate

数式を指定のシート/範囲だけ再計算する方法を解説します。Application・Worksheet・RangeのCalculateメソッドを使用することで、ブック、シート、範囲を指定して再計算を実行することができます。

ブック保存時に再計算を行わない設定にする - CalculateBeforeSave

ブックの計算が「手動」になっていてもブックの保存時に再計算が走るようになっています。この再計算を行ってほしくない場合は、Application.CalculateBeforeSaveプロパティにFalseを指定します。

マクロを高速化する基本設定4選 - Application

VBAには処理の前後に書くだけでマクロを高速化できる「おまじない」のようなコードが存在します。その内容、マクロ実行中のExcel動き(描画や計算)を制限するApplication設定コード4選を解説します。

数式の計算を自動/手動に設定する - Calculation

数式の計算を自動/手動に切り替えるにはApplication.CalculationにxlCalculationManual/Automaticを指定します。「手動」設定中に途中で一度再計算を挟みたい場合は、Calculateメソッドを使用して下さい。

マウスカーソルの描画を停止する - Cursor

マウスカーソルの描画を止めてマクロを軽くする方法を解説します。Application.Cursorプロパティを使用します。xlWaitで砂時計にすることでマクロを軽くすることができ、最後にxlDefaultに戻して使用します。

画面の描画を停止/再開する - ScreenUpdating

画面の描画を停止/再開するにはApplicationオブジェクトのScreenUpdatingプロパティにFalse/Trueを指定します。マクロの高速化に使用する際は、他3種の設定と同時に実行してください。

イベントマクロを無効化する - EnableEvents

Worksheet_BeforeDoubleClickやWorksheet_Changeなど、 ユーザーの操作を検知して実行するマクロをイベントマクロと呼びます。この実行(検知)を停止させるには、Application.EnableEventsプロパティを使用します。

7/11(木)21:00~ VBA勉強会「第8回 スパゲティコード添削会」

2026/7/11(土) 21:00~22:30 「スパゲティコード添削会」と称して、VBAの勉強会を開催します! 第7回課題共有会にて毎日信金さんが発表した、 「ドット絵プログレスバー」についてリファクタリングしていきます。お気軽にご視聴ください! ◇ 題材のVBA課題は…

ScreenUpdating系列の速度効果検証

マクロを簡単に高速化できる手法として、描画の停止・自動計算の停止・イベントマクロの停止・マウスカーソル描画の停止の4種類があります。この4つに実際どの程度の効果があるのかを検証してみましょう。

セルの色分けコードを自動生成するマクロ

カテゴリや種別が設定されたデータにおいて、種別ごとに色分けを行うSelectCase文を書くことがあります。このコードをセル値と背景色の組から自動生成するマクロを紹介します。

セルの色分け条件付き書式を自動設定するマクロ

カテゴリや種別が設定されたデータにおいて、種別ごとに色分けを行う場合は条件付き書式を利用することが多いです。この設定をセルの値と現在の背景色を読み取って自動で行うマクロを紹介します。