不要な名前定義を検索し削除するマクロこの広告は、90日以上更新していないブログに表示しています。2011-04-26不要な名前定義を検索し削除するマクロVBAあまり知られてない(?)けど、エクセルを作成したときに意図せず名前定義が設定されることがある。名前定義にはローカルパスや共有ファイルを触っている場合には共有フォルダのURL(IPアドレス含む)が設定されてしまうことがある。テンプレートをコピーして使用していた場合に、見せたくないパスやIPアドレスが混入してしまう。そこで、不要と思われる名前定義を一括削除するマクロを作ってみた。※私はvba門外漢のため取り敢えず動けばOKとした。vbaでファイルを扱うクラスは複数あるようだが、一番直感的に理解できたFileSystemObjectを使った。されたディレクトリ内(サブディレクトリ含む)のエクセルファイルを検索し、名前定義から"\","Doc","#REF"に部分一致する名前定義を削除します。Settingを意識,"#REF"は読めないデータは必要ないということで。実行するとヒットしたエクセルを一つずつ開いては閉じー、開いては閉じーするのでスペック低いPCだと処理時間がかかると思われる。できればそこそこスペックの良いPCで実行すると幸せだろうと思う。Sub■説明DeleteNamesがMainメソッドみたいなモノ。ログファイルを吐くためにTextFileオブジェクトを保持する。Object)を使い回しているのは、FileSearchメソッドは再帰的に処理されるためサブディレクトリを走査する際にNULLになったりして面倒だったから。・GetAttr(File.Path)あたりは読み込み専用ファイルを一時的に書き込みできるよう変更している。※ちゃんとフラグ持ってあとで読み込み専用に戻したりもしている。book1.Namesbook1.Namesで名前定義のListが取得できる。こいつを一つずつ見ていって、部分一致したら削除(name.Delete)する。FalseExcelから「保存しますか?」や「互換性がうんぬん」言われるのが嫌だったからいろいろググってやってみた。ほとんどうまくいっていたと思う。綺麗にかけると思う(検索キーを配列で持つとか)けど、動いて、結果も十分だったのでこれでよしとした。WebDriverでキャプチャを撮って、画像ファイルに保存...2011-09-15antでZipExceptionが起きるantを作っていたらなぜかZipExceptionが発生してしまった。Una...2011-08-31KXml2を使うXStreamは内部でKXml2を利用していることは既に書いた。org/xmlpull/v1/Xml...公式チュートリアルではこう書いてある。7参加グループプログラミングはてなブログをはじめよう!clash_m45さんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。