2024年8月13日火曜日

まあ、エクセルは、ノーコード、ローコードとか、DX(デジタルトランスフォーメーション)の先駆けには違いない ー 条件付き書式(VBAマクロ)

Excel2007での設定
              
会社の生産計画で使っている資料には、まだエクセルの表が現役で活躍中です。
もちろん、マクロが組みこまれているのですが、ワークシートも作表が複雑だ。

その一つに、条件付き書式があって、条件に合致したセルを強調して表示する。
つまり、作成者が定義した条件で、セルの背景色や文字色を変更する機能だな。

まあ、情報を見やすくしたり、データを見つけやすくしたりできる機能がある。
便利にはちがいないのだが、書式の設定後、行や列の挿入削除などすると大変。

この設定式が崩れてしまうと、ルール適用先がどこなのか不明瞭になりやすい。
なので、簡単なデータ分析をするなら、この方法だとしても、落とし穴に注意。

実は、このワークシートを運用する人から、条件付き書式の調査を受けました。
現状で問題が起きているわけではありませんが、後々の管理を検討するらしい。

それで、VBAをかじっている自分にリクエストがあったのですが、初耳なお話。
実は、条件付き書式を使ったこともなく、最近はワークシート関数もご無沙汰、

だから、設定方法から調べ始めて、VBAのコードで捕捉できるか検討しました。
実際には、エクセルのホームタブから、”条件付き書式”をクリックして開始だ。

なので、実際の設定はシート上からすべて行えるため、作りやすくなっている。
しかも、VBAコード不要の簡単さですが、他方、VBAのちょっかいは出せそう。

というのも、この書式設定に作成済みの一覧を取得するコマンドはありません。
だから、次のようなVBAコードから、思いっきり動かして取得する分けなんだ。

Sub 条件付き書式の設定を調査()
  If Cells.FormatConditions.Count = 0 Then
    MsgBox "条件付き書式は未設定です"
  Else
    MsgBox Cells.FormatConditions.Count & "個の条件付き書式が設定済み"
  End If
End Sub

Sub 条件付き書式の数式取得()
Dim fc As FormatCondition
  For Each fc In Cells.FormatConditions
    If fc.Type = xlExpression Then
      Debug.Print fc.AppliesTo.Address(False, False) & vbTab & c.Formula1
    End If
  Next fc
End Sub

でも、シートに仕込んでいないかもしれないので、一つ目のコードで確認する。
次に設定されていると分かれば、二つ目の式でVBエディターに書き出してみる。

イミディエイトウィンドウの出力ですから、メモ帳にでもコピペしてください。
というわけで、条件付き書式は、ソースコードの記述不要なノーコードみたい。

テレビコマーシャルでは、サイボウズ社の手掛ける”kintone(キントーン)”が、積極的にPRしておりまして、プログラミング知識がなくても視覚的な操作でアプリやシステムを開発できるツールが、今は流行りなんだろうなと思うのでした。



いいねと思ったら、三つポチっとね!
にほんブログ村 スキースノボーブログへにほんブログ村 スキースノボーブログ スキーへにほんブログ村 旅行ブログ 旅日記・旅の思い出へ
にほんブログ村    にほんブログ村      にほんブログ村 



0 件のコメント:

コメントを投稿