忍者ブログ

指定したファイルやフォルダをzip化するマクロを作るのをやめた

2020年11月29日
前回作成したリンク先を修正するマクロをベースにして、
指定したファイルやフォルダをzip化するマクロを作りたい!!

画面レイアウトは、前回のまんまで、リンク先を置換するところを
zipファイルに圧縮するモジュールに変えればいいじゃん。

調べると、zip化は①PowerShellを使うか②外部ライブラリを使うからしい。
VBAでZIP圧縮と解凍を行う | Excel作業をVBAで効率化 (vbabeginner.net)

パスワードが使えないのと2Gまでと制約があるけど、
VBAと親和性の高いPowerShellを使うことに。
PR
つづきはこちら "指定したファイルやフォルダをzip化するマクロを作るのをやめた"

ショートカットファイルのリンク先を置換するマクロ

2020年11月27日
今日は、ショートカットファイルについてのお話。

会社で使うNASは、IPアドレスが変わったりフォルダの移動などで
ショートカットファイルがリンク切れを起こすケースが多々あり、
困るケースが多い。

今回は、ショートカットファイルからリンク先アドレスを取得し、
リンク先のパスを置換するマクロを作ったので紹介します。

2024/5/7追記
ソースコードだけ欲しい方は、以下の記事を参照。

ショートカットファイルのリンク先を置換するマクロの改良~実用版~



処理を2つに分けて、それぞれエラーチェック

ファイルのフルパスからリンク先のアドレスを取得
ファイルはあるか
拡張子は.lnkか
リンク先は生きているか
検索文字列と置換文字列を予め指定して、リンク先を修正
検索文字列があるか
置換したパスにファイルはあるか
UIを意識して、エラー内容表示とエラー箇所の網掛け表示に対応してみた。
うまくリンク先を変更した場合は、リンク前のパスはグレー文字にした。

なので、文字色と背景色も初期化する必要がある。


リンク先の存在チェックではまった。
ファイルの有無はDir関数で取得できるけど、フォルダの場合は存在するのに””を返す。

仕方なくFilseSystemObjectのサブルーチンを作って対応。
とりあえずつくったものの、大量データを入力した場合の処理速度は問題ありそう。




2023/4/23追記
リンク切れチェックについて、新しい記事を追加。
ショートカットファイルのリンク先を置換するマクロの改良~パスの存在チェックをするバッチ~

2024/5/7追記
リンク先取得時にエラーが出る対策について、記事を追加。
ショートカットファイルのリンク先をショートパスで指定して文字数制限対策をした話

上記対策をリンク先を置換するマクロに適用。
ショートカットファイルのリンク先を置換するマクロの改良~実用版~


以下ソース


つづきはこちら "ショートカットファイルのリンク先を置換するマクロ"

エクセルのPDF化について

2020年11月24日
スマホから初更新

今日はエクセルのPDF化について

エクセルをPDFにする方法はいくつかあるけど、どれも処理が遅くてイマイチって理由でPDFに変換するマクロを作って運用してました。

が、ファイルの種類をPDF指定で保存するやり方を見てびっくり!
こっちのがマクロ選ぶより早いじゃん。
つづきはこちら "エクセルのPDF化について"

セルの左側にナンバーを付ける~番号崩れが起きないようにする方法~

2020年09月24日
エクセルの左側の列は、№列として番号を振ることが結構あると思います。

で、問題になるのがその番号の振り方。
offsetを使うのが個人的に最強と思い投稿。




ナンバリングで、最初にやるのが、これ。
A1=1、A2=A1+1、・・・行の挿入、削除があると参照が崩れて痛い目を見る。並べ替えもできない。


次にやるのがこれ。
A1=Row()、A2=Row()

表の挿入削除に強いが、タイトル位置をずらすと2から始まってる!?ってなる。


個人的最強はこれ。
つづきはこちら "セルの左側にナンバーを付ける~番号崩れが起きないようにする方法~"

エクセルで行の高さを1行分バッファをもって自動調整する

2020年09月24日
前回の記事では、エクセルの見切れ対策を話題にしましたが、
そもそも自動調整するマクロを書いた人がいるんじゃないかと思い、
検索。やっぱりいた!

http://moritahyoukeisan.com/excel48/pagev10/pagev10.htm

行の高さを自動調整+15ポイント(1行分)に設定する。


個人的な使い勝手を考慮して修正を加えました。

単にInputBoxを使わずに、Application.InputBoxを使うと
文字種制限をかけられるのは参考になった。

選択行だけやるか、シート全体をやるかは悩ましいところ。。。
以下ソース。
つづきはこちら "エクセルで行の高さを1行分バッファをもって自動調整する"