共有フォルダ上Excelファイルの扱い方
2024/09/28 ※サーバー移行しました: http://cf661650.cloudfree.jp/altmo_toolbox |
[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] |