『条件付き書式でPersonal.xlsbに登録している関数が使えない』(ポチ子) 条件付き書式でPersonal.xlsbに登録している関数を使用すると 【条件付き書式に他のワークシートまたはブックへの参照は使用できません。】と 表示されます。 どーすればPersonal.xlsbに登録している関数を条件付き書式で使用できますか? < 使用 Excel:Excel2007、使用 OS:WindowsXP > ---- 「名前の定義」を使えば出来る可能性がありますが、以下2点、確認したいです。 1.こっちのブックの拡張子は.xlsmですか?(xlsxでは不可です) 2.その関数を使ってどの様な条件式を書いたんですか? (半平太) 2019/09/19(木) 22:28 ---- 半平太様 早々のご返事有難うございます。 ご質問にお答えします。 >1.こっちのブックの拡張子は.xlsmですか?   拡張子は.xlsmです    >2.その関数を使ってどの様な条件式を書いたんですか?   Personal.xlsbに登録している関数は日付データを関数に渡すと   日付データが祝日なら"祝"を返し祝日でなければNULLを返す関数です。       Public Function syukujitu(ByVal 日付 As Date) As String    ・    ・ ’祝日判定処理  祝日なら祝日=1 祝日でないなら祝日=0    ・       if 祝日 then       syukujitu = "祝"     else       syukujitu = ""     endif              End Function      この関数を使用して、Excelブック(test.xlsm)のSheet1のA1セルに日付を入力して   A1セルに入力された日付が祝日だったらA1セルを赤色で塗りつぶす為に   A1セルの条件付き書式でPersonal.xlsb!syukujitu(A1)="祝"なら書式で赤色で   塗りつぶす様に指定しました。      「Personal.xlsb!」が他のブックへの参照になっていると思われます。   Excelブック(test.xlsm)にこの関数を保存すると正常に動作しています。      以上の様な状況です。   宜しくお願い致します。 (ポチ子) 2019/09/20(金) 11:43 ---- うーん、考えてみたのですが、A1を動的に渡す方法が分かりませんでした。ごめんなさい m(__)m ただ、その程度の機能なら、ユーザー定義関数を使わなくても実現できますけども。 ※祝日データがどこかにあって、それを使ってその関数も計算しているんでしょうから  その情報さえ示して頂ければ(又は、そのコードの全貌を提示して頂ければ) 通常の数式で対応可能です。 (半平太) 2019/09/20(金) 13:44 ---- Excelブック(test.xlsm) は Personal.xlsb への参照設定はされていますか? されていれば、 A1セルの条件付き書式で syukujitu(A1)="祝"なら書式で赤色で塗りつぶす様に指定 でできそうに思います(多分2007でも)けど。 (チオチモリン) 2019/09/20(金) 14:28 ---- 半平太様 有難うございます。 今回は、「Personal.xlsbに登録している関数を条件付き書式で利用する」方法を検討しています。ですので別の方法使うことは目的が違ってしまいますのでこれからも続けて検討していこうと思っています。 有難うございました。m(__)m (ポチ子) 2019/09/20(金) 17:19 ---- チオチモリン様 有難うございます。 >Excelブック(test.xlsm) は Personal.xlsb への参照設定はされていますか? その方法が有ったんですね\(^o^)/。参照設定で解決いたしました。 有難うございました。m(__)m (ポチ子) 2019/09/20(金) 17:45