忍者ブログ

[PR]

2025年07月01日
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

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

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

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

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

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

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



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

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

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


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

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




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

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

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


以下ソース


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

エクセルの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行分バッファをもって自動調整する"

セルの書式を引き継いだまま改行を追加する

2020年09月24日
エクセルの資料を印刷したら、改行位置が違ってて見切れが!!

よくある話かと思います。

自分なりの対策として、
選択範囲のセルに改ページを追加する処理をしていました。

if right(R ,1) <> chr(10) then
    R =R & chr(10)     ’Each R in Selection
end if


気に入って結構使っていたのですが、書式が変わっちゃう問題が発覚。
赤字やアンダーラインがクリアされるのはまだしも、
取り消し線が復活するのはアカン!

調べたところ、Characters.Insertを使えばいいとのこと。
つづきはこちら "セルの書式を引き継いだまま改行を追加する"