プロが教える店舗&オフィスのセキュリティ対策術

先程から何度もすいません。質問も初心者です・・・
ベストアンサーで質問(やり取りは締め切りとなるのですかね?)
ご回答ありがとうございます。

先程ご回答いただきました皆様ありがとうございます。
コードまでありがとうござます。
追加で質問ですが、
異なるPCでも同じ動作にしたいのですが(違う人が使用しても)

 ≫個人管理表 = CreateObject("Wscript.Shell").SpecialFolders("Deskto p") & _
"\管理\ファイルB.xlsx"

上記は動作しますでしょうか?
※ちなみに管理フォルダ内の管理という名前のエクセルファイルに保存しております。

A 回答 (2件)

続きですね


既に回答にある通りと思いますが、一応はい、
パスに使える文字列としては取得できると思います。。
ごめんなさい、Macどうだったか?
正し、取得できても管理フォルダやファイルB.xlsxが存在する保証がないので、If Dir(個人管理表) <> "" Thenなどで検証します。

必要が無いかもですが、先の質問のコードを少し変更して
説明を加えました。

人が書いたものゆえ、内容を理解した方が良いと思いますので、
不明な点は、お礼もしくは補足で。

イデントが分かり難いのでVBEで確認してください。

Option Explicit
Sub myPasteValues(ActSht As Worksheet)
'マクロが書かれているブックのシートSheets("ファイルA")の4行目をコピー
 ThisWorkbook.Sheets("ファイルA").Rows(4).Copy
 With ActSht    '対象のアクティブシート
 'A列最大行セルからCtrl+↑を押したセルの1 つ下のセルに値貼り付け
  .Cells(Rows.Count, "A").End(xlUp).Offset(1). _
    PasteSpecial Paste:=xlPasteValues
 'コピーモード解除
  Application.CutCopyMode = False
 '処理後の体裁、A1セルに選択を移動
  .Range("A1").Select
 End With
 ' 対象ブックを保存し閉じる
 ActiveWorkbook.Close SaveChanges:=True
End Sub

Sub 管理_保存()
'色々まとめたので2バイト文字で変数設定(お好みに変更してください)
Dim フルパス個人管理表ブック As String
Dim n As Long
 '対象ブックのフルパスを取得
 フルパス個人管理表ブック = CreateObject("Wscript.Shell").SpecialFolders("Desktop") & _
     "\管理\ファイルB.xlsx"
 If MsgBox _
  ("フルパス個人管理表ブックに追加しますか?", vbYesNo, "実行確認") = vbNo Then Exit Sub
 Application.ScreenUpdating = False ''画面停止
 '対象ブックが存在するか検証
 If Dir(フルパス個人管理表ブック) <> "" Then
 '対象ブックが存在し対象ブックが開かれているか検証
 'ファイルレベルで開いてみる
  On Error Resume Next
  Open フルパス個人管理表ブック For Append As #1
  Close #1
  If Err.Number > 0 Then
   On Error GoTo 0
 ' 開かれている
   Windows("ファイルB.xlsx").Activate
 '対象シートを明示する為、一番左のシートを指定(アクティブ)
 '貼り付けるシートに変更してください。
   Sheets(1).Activate
 '処理ルーチンへ
   Call myPasteValues(ActiveSheet)
  Else
 '開かれていないのでOpen
   Workbooks.Open Filename:=フルパス個人管理表ブック
 '対象シートを明示する為、一番左のシートを指定(アクティブ)
 '貼り付けるシートに変更してください。
   Sheets(1).Activate
   Call myPasteValues(ActiveSheet)
  End If
  Range("A1").Select
  Application.ScreenUpdating = True ''画面再開
 Else
 '対象ブックが存在しない
  MsgBox フルパス個人管理表ブック & vbCrLf & "が存在しません"
 End If
End Sub

実行プロシージャはSub 管理_保存()です。
先のものと見比べてみるのも良いと思います。
    • good
    • 0
この回答へのお礼

何度も申し訳ございません。
インデントまで追加いただきありがとうございます。
分かりやすく今後のためにも精進いたします。

先程のコードで自身PCでの動作は確認できました。
MACではなく、Windowsですので他PCでも問題なしということですね。

ベストアンサーにして質問締させてもらいます!!

お礼日時:2021/04/10 15:55

動作するかは個々の環境にもよると心配してのことですよね?


そうだとしたら回答者では実行できても、そちらの環境でどうなのかは検証出来ないと思うのです
双方で違いますから
なのでそちらで実行してみてダメならどのようにダメと返事をされた方が宜しいのかもです
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
そうですね、一度確認してみます。
他PCも同メーカ同型の為、自身のPCで動作すれば問題ないと思うのですが、
各PCの指定フォルダを開ける際に、個人PC名指定が必要かと思いまして・・・
検討違いであれば面目ございません・・・

お礼日時:2021/04/10 15:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!