エッセイ  Page101
<< Pre Home >> Next
"DENON AH-C710レビュー/マメモtm2レビュー" "癒しの音楽2"
Home > エッセイ インデックス > エッセイPage101 "ユーザー定義関数を含む計算式をファイルオープン時にだけ動かす方法、またはNTFSアクセス権の変更方法"
サイトインデックス
■Home
■お料理
■オンラインソフト
□エッセイ
■メール
■リンク
ユーザー定義関数を含む計算式をファイルオープン時にだけ動かす方法、またはNTFSアクセス権の変更方法
おしばらくぶりです、みなさん。もう、やめたと思ったでしょう。
確かに、やめちゃおうかなくらいには思っていました。
でも、しなかったというよりは、できなかったというほうが正しいのです。
ひとつには、どうしても落とすことのできない試験がありました。
いまひとつには、ホームページに使っているベクターの許容量がいっぱいになってしまっていたことです。
そんなわけで、片手間に追加するということができなくて今日に至ってしまいました。
みなさんの期待に応えようといろいろな案を考えましたが、肯定的な現実と否定的な現実が1:50くらいで気が滅入ってしまい、ようやく2012年になって、たまには自分も人の役に立ちたいという当初に自分に立ち戻ることができた次第です。
長い言い訳になってしまいましたが、ちゃっちゃとやってちゃっちゃと終わらしてしまいましょう。
VBAでユーザー定義関数を含む計算式をファイルオープン時にだけ動かす方法は至極簡単です。
標準モジュールのAuto_Openで、セルのFormulaを指定するサブルーチンをコールするだけです。そのFormula内でユーザー定義関数を使用します。
一般に、ファイルオープンに1回だけ実行したい計算式は、日付に関連したものが多いと思われるので、その大元となる日付の入ったセルさえ更新してしまえば、あとはどうとでもなります。
いきなりそのセルに文字列で日付を入れてもいいのですが、どこでやっているかを明示するために、コードを読ませないで計算式でやるわけです。
ワークシート関数をネストすると可読性が落ちますし複雑な条件を作りづらいので、ユーザー定義関数で行います。
ただし、ユーザー定義関数にはVolatileを入れないと再計算してくれません。ですが、入れると今度はひっきりなしに再計算がかかるので、ファイルオープン時にだけ実行するようにした次第です。
Formulaを指定するとその直後でRecalcを実行すれば、Volatileなしのユーザー定義関数に対してRecalcを実行しても、一回だけ実行してくれます。ただし、そのためには、設定したいセルの数だけFormulaを設定しなければならないのはご愛嬌です。
まあ、神クラスのVBA使いの方々には、こんなやり方は笑い話くらいにしかならないでしょうが。

さて、次のお題はNTFSアクセス権の変更です。
解決方法はズバリ下記URLにあるVBスクリプトをダウンロードして、サンプルのように実行するだけです。
NTFSアクセス権の変更方法URL=
恥ずかしながら、私は自分のおかれている状況に気づかず、このページにたどり着くまでに半日かかりました。
そもそも、なんでこんなわずわらしいことに巻き込まれたかというと、全てはウォークマンの楽曲管理ツールのSonic Stageのせいなのです。
そういえば、インストールの際に、自分のユーザーだけにするか、他のユーザーにも権限を与えるか訊かれたような。普通この手のインストールをしているときにそう訊かれたら、自分だけって選択しますよね。
ああ、そうなんです。たしか、そう選択したような気が。
共有接続のときは、ドメイン名が違っていてもユーザー名とパスワードがあっていればいいんですが、NTFSアクセス権はドメインごとに登録しなければならないのですね。知らんかった。
だから、\Everyoneの指定にするかどうかを訊かれたようです(私はオーナーだけにしたわけですね)。
このためか、Sonic Stageのデータフォルダを共有フォルダに指定しても、アクセス権変更のダイアログがほとんど動きません。
そもそも、もとはといえば10年間使い続けたTNT2のグラボが(いまどきこんなグラボを使っているのって私くらいでしょう)、昨年末にめでたく天に召され、今更AGPのグラボなんて買いたくても売ってないんで、サブPCにデータを洗いざらい転送しようとしたのがきっかけです。
どうやってもSonic Stageのデータだけ転送できない。
そのときはNTFSアクセス権の問題だとは思ってもみませんでした。転送ツールのバグだろうくらいにしか考えていませんでした。
ああ、そのために原因究明に約半日、NTFSアクセス権変更での検索にたどり着くのに約1時間。正月休みはこれでなくなりました。
ちなみに、AGPのグラボはFX5200の中古を980円で購入。送料は代引き込みで1300円でした。本体価格より送料の方が高いってどういうこと?
1月の小遣いもこれでキレイさっぱり使い果たしました。
ああ神様、なんか私悪いことしましたか?
というオチで、皆様にとっていい年でありますように。
あけましておめでとうございます。
<< Pre Top >> Next
"DENON AH-C710レビュー/マメモtm2レビュー" "癒しの音楽2"
inserted by FC2 system