|
共有フォルダ上Excelファイルの扱い方
2024/09/28 |
| [Prev] [Next] [Top] , Digital [Prev] [Next] |
共有フォルダ上Excelファイルでよくあるトラブル
素朴な手しか取れない...ならばショートカットを使おう
![]() Figure 1: ショートカット/閲覧用/編集用データの配置 ![]() Figure 2: データ更新の手順 一定の手順なら自動化したいと思うはず
'ショートカットファイル名
Dim strFpah: strFpath="共有データ.xlsx.lnk"
'ファイルシステムObject取得
Dim objFs: Set objFs = CreateObject("Scripting.FileSystemObject")
'ショートカット(既存)削除
If objFs.FileExists(strFpath) Then
objFS.DeleteFile strFPath
End If
'WScript.Shellオブジェクト取得
Dim objWsh: Set objWsh = CreateObject("WScript.Shell")
'ショートカットオブジェクト取得
Dim objShc: Set objShc = objWsh.CreateShortcut(strFpath)
'ショートカットファイルパス設定
objShc.TargetPath = "共有データ.20240928.xlsx"
'ショートカット(新規)作成
objShc.Save
'オブジェクト解放
Set objShc = Nothing
Set objWsh = Nothing
Set objFs = Nothing
#!perl -w
use Win32::Shortcut;
use Encode;
use strict;
{
my $o_link = Win32::Shortcut->new(); # Win32::Shortcutオブジェクト作成
$o_link->Load("共有データ.xlsx.lnk"); # ショートカット読み込み(.lnk付くことに注意)
my $r_path_pre = $o_link->{Path}; # 参照パス取得
print "参照パス変更前: [$r_path_pre].\n";
my $r_path_mod_utf8 = Encode::decode('cp932', $r_path_pre); # utf-8へ(正規表現使用のため)
$r_path_mod_utf8 =~ s/\d{8}\.xlsx/20240928.xlsx/; # 参照ファイル名変更
my $r_path_mod = Encode::encode('cp932', $r_path_mod_utf8); # cp932へ戻し
$o_link->{Path} = $r_path_mod; # 参照パス変更
my $r_path_post = $o_link->{Path}; # 確認のため再度取得
print "参照パス変更後: [$r_path_post].\n";
$o_link->Save(); # 変更結果をショートカットファイルへ反映
$o_link->Close(); # オブジェクトクローズ
}
>test.pl 参照パス変更前: [...略... 公開データ\共有データ.20240927.xlsx]. 参照パス変更後: [...略... 公開データ\共有データ.20240928.xlsx]. ![]() Figure 3: ショートカットプロパティ変更(クリックで拡大) |
| Notes |
|
2024-09-28: 初版 2024-09-29: VBS(WSH)ショートカット作成例追加 Copyright(C) 2024 Altmo
本HPについて |
| [Prev] [Next] [Top] , Digital [Prev] [Next] |