top of page

​タグ一覧

配列処理(73)

階層化フォーム(33)

ファイル操作(28)

開発事例(25)

シート・セル操作(23)

図形操作(15)

設計思想(13)

講座実施報告(12)

ユーザーフォーム(10)

コード自動生成(10)

ココナラ(9)

数学(8)

文字列操作(8)

開発効率化(6)

GAS(5)

副業(5)

アニメーション(5)

技術解説(4)

イミディエイトウィンドウ(4)

Googleスプレッドシート(4)

クリップボード(4)

条件付き書式(4)

その他(4)

Webアプリ(4)

OneDrive(3)

イベントプロシージャ(3)

小説(3)

HTML(3)

JavaScript(3)

Enum(2)

PDF(2)

フリーランス(2)

リスキリング(2)

Outlook(2)

介護(2)

Discord(2)

シフト表(2)

LookerStudio(2)

日報(2)

カレンダー(2)

公開ツール(2)

罫線(2)

パズル(2)

小ネタ(2)

コード解説(2)

クラスモジュール(2)

Antigravity(2)

デスクトップアプリ(2)

ステータスバー(1)

コード解析(1)

バックアップ(1)

可変長引数配列(1)

ブック処理(1)

スクレイピング(1)

スプレッドシート(1)

coconala(1)

リボン登録マクロ(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

リボン(1)

超勉強会(1)

Excel(1)

スピログラフ(1)

図名描写(1)

連想配列(1)

溶接ロボット(1)

VBA(1)

保育士(1)

楽天市場(1)

経理(1)

医療(1)

文書作成(1)

発注書(1)

ショートカット(1)

WebAPI(1)

色操作(1)

スーパー開発ショートカット(1)

ライブラリ処理(1)

放課後等デイサービス(1)

児童福祉支援(1)

学校(1)

UI(1)

CAD(1)

カーソル操作(1)

チェックボックス(1)

PowerShell(1)

python(1)

GetCellProperty|セル範囲のプロパティを二次元配列で取得する

この部品でできること

GetCellProperty は、セル範囲の各セルのプロパティを、取得したい種類を選んで二次元配列としてまとめて取得するExcel VBAの汎用プロシージャです。取得できるプロパティは次のとおりです。

  • 値(Value)

  • 数式(Formula)

  • R1C1形式の数式(FormulaR1C1)

  • フォント色(Font.Color)

  • 塗り潰し色(Interior.Color)

  • 表示値(Text)

  • 表示塗潰色(条件付き書式の結果色 / DisplayFormat.Interior.Color)

取得する種類は列挙型 EnumCellProperty で指定します。1回の呼び出しで範囲全体をまとめて配列化できるので、セルの内容や書式を一括で読み取って処理したいときに便利です。

使いどころ

  • セル範囲の値や数式を、ループ処理の前に一括で配列に読み込んでおきたいとき

  • 書式(色や表示値)を含めてセルの状態を取得し、比較・バックアップ・転記したいとき

  • 条件付き書式で実際に表示されている色を取得したいとき

コード

宣言セクション(EnumCellProperty)はモジュールの先頭に配置してください。その下に本体を貼り付ければ動作します。

使い方・引数

引数に、取得対象のセル範囲と、取得したいプロパティの種類(列挙型)を渡して呼び出します。戻り値は1始まりの二次元配列です。

  • CellArea(Range):取得対象のセル範囲

  • Property(EnumCellProperty):取得するプロパティ(vbValue / vbFormula / vbFormulaR1C1 / vbFontColor / vbInteriorColor / vbText / vbDisplayFormatInteriorColor

次は、B2:C3 に値・数式・塗り潰し色を設定し、値/数式/塗り潰し色をそれぞれ二次元配列で取得して、イミディエイトウィンドウに出力する呼び出し例です。

このテストを実行すると、イミディエイトウィンドウに次のような結果が出力されます(塗り潰し色は黄色 = 65535)。

(1,1) 値=100 / 数式=100 / 塗り色=65535
(1,2) 値=200 / 数式=200 / 塗り色=65535
(2,1) 値=200 / 数式==B2*2 / 塗り色=65535
(2,2) 値=400 / 数式==C2*2 / 塗り色=65535

依存プロシージャ

  • 宣言セクション(Enum)EnumCellProperty(取得するプロパティの列挙型)を、必ずモジュールの先頭に配置してください(上のコードの宣言セクション部分)。これにより vbValuevbInteriorColor のように分かりやすく取得対象を指定できます。

  • 上記以外の自作プロシージャには依存せず、Excelの標準的なプロパティのみで動作します。

応用・注意点

  • 戻り値は1始まりの二次元配列です。行・列とも UBound(配列, 1) / UBound(配列, 2) でループできます。

  • vbValue(値)は生の値、vbText(表示値)は書式適用後の表示文字列を返します。日付や桁区切りなど、見た目のとおりの文字列がほしい場合は vbText を使います。

  • vbInteriorColor は設定された塗り潰し色、vbDisplayFormatInteriorColor は条件付き書式で実際に表示されている色を返します。条件付き書式の結果色を取得したいときは後者を使います。

  • 値・数式・R1C1数式は範囲プロパティで一括取得できますが、1セルだけの範囲では二次元配列ではなくスカラー値が返る点に注意してください(Excelの仕様)。複数セルの範囲で使うのが基本です。

まとめ

GetCellProperty を使えば、セル範囲の値や書式を、取得したい種類を選んで二次元配列でまとめて取得できます。セルの内容を一括で読み取って処理・比較・転記したいときの基本部品として便利です。

Excel VBAによる業務自動化・ツール開発をご検討の方へ

​"脱Excel"の前に、現状のExcelの潜在能力を120%発揮してみませんか?

softex-celwareロゴ 透過 横長.png

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware。Wix.com で作成されました。

bottom of page