|
>そのファイルが既に開かれているかどうかの
>判定はどうしたらよいでしょうか?
StartupPathのPersonal.xlsが開かれる時、つまりExcelが起動する時、
既にStartupPathのPersonal.xlsが開かれているかどうかの判定
...という事ですか?
書き込み時に制約ありますが、ある程度妥協した上で、
SetAttrステートメントでファイル属性をフラグ替わりに使えば、
できなくはないと思います。
が、下記スレッドのように、かなり面倒そうですよ?
tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=38514;id=excel
それより、主目的が、
Excelの重複起動時の『読み取り専用ダイアログを表示させない』だけなら、
Personal.xlsのOpenイベントで .ChangeFileAccess xlReadOnly にする。
つまり、Personal.xlsは常に読み取り専用で開かれる。
なので重複で開く場合でもダイアログは表示されない。
個人用マクロを書き換える必要がある時だけ.ChangeFileAccess xlReadWrite にする。
...が簡単です。それではだめな理由があるのですか?
上記案がだめな場合は
>Personal.xlaのマクロを実行するにはVisualBasicEditerを開くしかないのでしょうか?
この疑問点が解消されているわけですから、
アドイン化するのが現実的な解決方法だと思います。
また、(多分)アドインファイルのほうがStartupPathのPersonal.xlsより先に開くでしょうから、
Openイベントだけのアドインで、工夫すればできるかもしれません。(未検証)
|
|