戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
フォルダを検索

    [191412] フォルダを検索-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ sukuruto -(2020/02/19(01:04))
    □U R L/
      初めて投稿させていただきます
      私はマクロの自動記録と小学生レベルのVBAを使用する者ですが
      こちらの優秀な方々に教えていただきたいことがあります。
      エクセルのSheet1のA列の2行目から管理番号を入力しているのですが
      (最終行は変動します)その管理番号と同じ名前のフォルダを
      \\データと言うネットワークのフォルダ内から探しだし(中にはexcelファイル有)
      C:\印刷用にコピー、(確認作業してから)そのあと一気に印刷したいです。
      ちなみに↓の記述はフォルダを作成するマクロですが
      これをどういうふうに変えるといいかご教授願います。
      
      Sub フォルダ作成()
          Dim i As Long
          For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
              MkDir ThisWorkbook.Path & "\" & Cells(i, 1)
          Next i
      End Sub


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191413] Re[1]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ sukuruto -(2020/02/19(01:17))
    □U R L/

      追記です
      コピーした後の確認作業と言いますのは
      同じ管理番号のフォルダがない時もありますので
      そこを確認したいのです。記述はコピーと印刷を分けて
      使います。




    [191414] Re[2]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ γ -(2020/02/19(12:55))
    □U R L/
      回答ではなく、いくつか確認事項です。
      
      (1)
      > \\データと言うネットワークのフォルダ内から探しだし
      そのネットワークフォルダの全域を探すのですか?
      特定のフォルダの下にサブフォルダの形でまとまっている、
      といったことが予めわかるのなら(その情報は質問者しか持ち得ない)、
      手間が省けますね。
      そうした説明が必要では?
      
      普通は、用途に応じてまとめますけどね。
      また、汎用的な目的で各種用途のファイルが混在しているなら、
      フォルダだけでなくファイル名などで判断しないといけないことになりますね、普通は。
      
      (2)
      管理番号を含む、ではなく完全一致ですか?
      また、管理番号だけでユニークに決まりますか?
      階層の異なるフォルダにも同じ管理番号が使われている、
      といったことはないですか?
      
      (3)
      「C:\印刷用にコピー」というのは、該当するフォルダまるごとコピーするんですか?
      それとも、そのなかのファイルをコピーということですか?
      
      基本的な方向としては、
      FSO(File Sytem Object)を使って、配下のフォルダを芋づる式に検索できます。
      管理番号 → フォルダパス
      というDictionaryを予め作っておくのがよいと思います。(1)の回答にも依りますけど。
      
      # (私は)優秀でもないし、そういうジャブをカマす必要あります?
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191415] Re[3]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ まっつわん -(2020/02/19(13:48))
    □U R L/

       >ThisWorkbook.Path & "\" & Cells(i, 1)

      ↑ここにフォルダーを作ったなら、
      さがさなくても、そのままそこですよね?

      そこにあるかないかの存在確認をして、
      無ければ作成
      あればその中のファイルを印刷したい
      ということでしょうか?

      小学生レベルのVBAってなんだろう。。。。。

      必要以上に遜ってみても、他人を小ばかにしている印象をあたえるかと。。。
      知らないから聞く。
      知っている人が答える。
      で、いいのでは?




    [191418] Re[4]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ sukuruto -(2020/02/19(22:58))
    □U R L/
      γ様へ
      
      >(1)
      >そのネットワークフォルダの全域を探すのですか?
      仮ですが
      \\192.168.999.999\専門別\エリア別¥excleと言うフォルダから
      探したいのです。その中に今回コピーしたい管理番号
      (例えば625624560010とか1036555443236500)という
      フォルダがあるのです。日々新しい管理番号が増えます。
      excelファイル3個または4個格納されています。
      
      
      >(2)
      >管理番号を含む、ではなく完全一致ですか?
      はい完全一致です。
      印刷用.xlsx のSheet1のA列の2行目から入力している管理番号
      と完全一致のものです。
      このファイルの2行目からの入力は日々変動します。
      毎回60個ぐらいのフォルダをコピーします
      
      
      >階層の異なるフォルダにも同じ管理番号が使われている、
      >といったことはないですか?
      階層は異ならないですがexcelとpdfで同じ名前の管理番号の
      フォルダが少しあります
      \\192.168.999.999\専門別\エリア別¥excle\625624560010
      \\192.168.999.999\専門別\エリア別¥pdf\625624560010
      \pdf、にはpdfファイル2個格納されています。
      
      >(3)
      >「C:\印刷用にコピー」というのは、該当するフォルダまるごと
      >コピーするんですか?
      >それとも、そのなかのファイルをコピーということですか?
      該当するフォルダまるごとコピーです。
      
      >基本的な方向としては、
      >FSO(File Sytem Object)を使って、配下のフォルダを芋づる式に検索できます。
      >管理番号 → フォルダパス
      >というDictionaryを予め作っておくのがよいと思います。(1)の回答にも依りますけど。
      
      ># (私は)優秀でもないし、そういうジャブをカマす必要あります?
      
      私は素直に思ってます。ジャブ? そのような気持ちは全くありません。
      
      
      
      
      まっつわん様へ
      
       >ThisWorkbook.Path & "\" & Cells(i, 1)
      
      >↑ここにフォルダーを作ったなら、
      >さがさなくても、そのままそこですよね?
      はいこのファイルの場所がC:\印刷用\印刷用.xlsx です
      
      >そこにあるかないかの存在確認をして、
      >無ければ作成
      >あればその中のファイルを印刷したい
      >ということでしょうか?
      ネットワークの共有フォルダから探します
      無ければそのまま次を検索です
      後で無かった管理番号を調べますので。
      その後に印刷です
      ですのでマクロ実行ボタンは二つ作ろうと
      思っています。
      
      
      
      >小学生レベルのVBAってなんだろう。。。。。
      ちょこちょここちらの掲示板は拝見させていただいておりました。
      みなさんすごいなと素直にそう思っております。
      
      >必要以上に遜ってみても、他人を小ばかにしている印象をあたえるかと。。。
      >知らないから聞く。
      >知っている人が答える。
      >で、いいのでは?
      はい わかりました。
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191419] Re[5]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ sukuruto -(2020/02/19(23:25))
    □U R L/

      >(1)
      >そのネットワークフォルダの全域を探すのですか?
      仮ですが
      \\192.168.999.999\専門別\エリア別¥excleと言うフォルダから
      探したいのです。その中に今回コピーしたい管理番号
      (例えば625624560010とか1036555443236500)という


      すいません、訂正です。
      \\192.168.999.999\専門別\エリア別¥excle\東京
      \\192.168.999.999\専門別\エリア別¥excle\名古屋
      \\192.168.999.999\専門別\エリア別¥excle\大阪・・・etc
      でした。各この地名の複数フォルダの中に管理番号がついた
      フォルダが散りばめられておりました。




    [191420] Re[6]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ γ -(2020/02/20(00:31))
    □U R L/
      とりあえず、フォルダのコピーだけ。
      
      ・\\192.168.999.999\専門別\エリア別¥excleと言うフォルダから探す のと、
      ・\\192.168.999.999\ から探す
      のは雲泥の差があります。
      
      後者は、ファイルサーバーをすべてチェックしないといけないので、時間もかかりますし、
      資源的にも相当負荷があります。
      
      Sub フォルダコピー()
          Const folder As String = "\\192.168.999.999\専門別\エリア別¥excle\"    '最後に\をつける
          Dim targetFolder As String
          Dim fso As Object
          Dim i As Long
          Dim s As String
          Dim f As Object
          
          targetFolder = ThisWorkbook.Path
      
          Set fso = CreateObject("Scripting.FileSystemObject")
      
          For i = 2 To Cells(Rows.count, 1).End(xlUp).Row
              s = folder & Cells(i, 1).Value    '登録番号
              
              'フォルダの有無確認
              Set f = Nothing
              On Error Resume Next
              Set f = fso.GetFolder(s)
              On Error GoTo 0
              
              'フォルダのコピー
              If f Is Nothing Then
                  MsgBox Cells(i, 1).Value & " に相当するフォルダはありません"
              Else
                  fso.CopyFolder s, targetFolder & "\"
              End If
          Next
      End Sub
      
      テスト検証してください。(手元ではローカルフォルダで一応の確認はしていますが)
      
      ファイルの印刷は、どなたか別の方にお願いしたいと思います。
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191421] Re[7]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ γ -(2020/02/20(00:35))
    □U R L/
      その後、訂正があったらしく、上の投稿はボツになりました。(泣)
      手元においても何の得にもならないので、コードの作成参考例にでもしてください。
      
      
      > \\192.168.999.999\専門別\エリア別¥excle\東京
      > \\192.168.999.999\専門別\エリア別¥excle\名古屋
      > \\192.168.999.999\専門別\エリア別¥excle\大阪・・・etc
      > でした。各この地名の複数フォルダの中に管理番号がついた
      > フォルダが散りばめられておりました。
      だというので。
      
      Option Explicit
      Dim dic As Object
      Dim fso As Object
      Sub test()
          Const folder As String = "\\192.168.999.999\専門別\エリア別¥excle\"    '最後に\をつける
          Dim targetFolder As String
          Dim s As String
          Dim i As Long
      
          targetFolder = ThisWorkbook.Path
      
          Set dic = CreateObject("Scripting.Dictionary")
      
          Set fso = CreateObject("Scripting.FileSystemObject")
      
          Call getSubFolder(fso.GetFolder(folder))
      
          For i = 2 To Cells(Rows.count, 1).End(xlUp).Row
              s = Cells(i, 1).Value    '登録番号
      
              'フォルダのコピー
              If dic.Exists(s) Then
                  fso.CopyFolder dic(s), targetFolder & "\"
              Else
                  Debug.Print Cells(i, 1).Value & " に相当するフォルダはありません"
              End If
          Next
          Set fso = Nothing
      End Sub
      
      Function getSubFolder(obj As Object)
          Dim o As Object
          For Each o In obj.SubFolders
              dic(o.Name) = o.Path
              Call getSubFolder(o)
          Next
      End Function
      
      以上で私の担当は終了です。
      修正依頼(バグを除き)はご遠慮願います。ご自分でトライしてください。
      修正はもう十分受け付けましたので。
      
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191422] Re[8]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ γ -(2020/02/20(11:26))
    □U R L/
      補足説明です。
      
      作成したDictionaryは、
      Key:  "625624560010" に対して、
      Item: "\\192.168.999.999\専門別\エリア別¥excle\東京\625624560010"
      というフォルダパスの組
      を保持するものです。
      
      いったん、
      "\\192.168.999.999\専門別\エリア別¥excle"の配下のフォルダたちを
      すべてDictionaryに持たせていますから、これに照会することで、
      "625624560010"に対応するフォルダパスを簡単に取得できます。
      
      私だったら、特にフォルダをコピーせずに、
      もとのシートの"625624560010"の右横の列に
      その対応フォルダパスを書き付けておき、
      必要に応じて、その配下の Excelファイルを直接、印刷するようにしますね。
      Dir関数を使った、簡単な繰り返し処理で書けます。




    [191423] Re[9]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ sukuruto -(2020/02/21(00:37))
    □U R L/

      γ 様へ

      今、感動しています!!
      散りばめられているのにコピーしてきました!!
      本当に有難うございました(*^^*)


      >私だったら、特にフォルダをコピーせずに、
      >もとのシートの"625624560010"の右横の列に
      >その対応フォルダパスを書き付けておき、
      >必要に応じて、その配下の Excelファイルを直接、印刷するようにしますね。
      >Dir関数を使った、簡単な繰り返し処理で書けます。
      ありがとうございます。でも今の私には難易度が高いので
      印刷はなんとか頑張ります。




    [191429] Re[10]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/02/21(19:55))
    □U R L/
      コピーしないで該当ファイルを印刷
      
      Sub test()
          Dim p As String
          Dim cmd As String
          Dim ss, s
          Dim c As Range
          Dim n As Long, k As Long
          
          p = "\\192.168.999.999\専門別\エリア別¥excle\"
          cmd = "cmd /c dir " & p & " /b/s/a-d"
          ss = Split(CreateObject("wscript.shell").exec(cmd).stdout.readall, vbCrLf)
          For Each c In Range("A2", Cells(Rows.Count, 1).End(xlUp))
              s = Filter(ss, "\" & c.Value & "\")
              n = UBound(s)
              If n > 0 Then
                  For k = 0 To n
                      MsgBox s(k) & vbLf & " を印刷"
                  Next
              Else
                  c.Offset(, 1).Value = "フォルダなし"
              End If
          Next
          
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191431] Re[11]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/02/21(20:35))
    □U R L/
       最初にフォルダーをコピーするコードを書いてから
      それを書き換えたので、修正漏れがありました
      
      p = "\\192.168.999.999\専門別\エリア別¥excle\*.xlsx"
      
      それと、もう1箇所。こっちは大きな間違い
      
      If n >= 0 Then
      
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191432] Re[12]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ sukuruto -(2020/02/22(00:45))
    □U R L/

      マナ 様へ
      有難うございます。
      会社のサーバーが問題ありで自分の端末までコピーしてくると
      何故かしらスイスイと印刷してくれます(^-^;
      サーバーを替えるという話もでてきておりますので
      それまではγ様の記述とマナ様の記述の
      p = "\\192.168.999.999\専門別\エリア別¥excle\*.xlsx"
      ここを自分の"C:\印刷用"に変更してマクロボタンを
      2つ作成して使わせていただきます(*^_^*)

      すごく嬉しいです!有難うございました(>_<)





    [191433] Re[13]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/02/22(11:16))
    □U R L/
      印刷のコードは自力でかけたということですね。
      
      >でも今の私には難易度が高いので
      
      FSOとかDictionaryがわからないということですか。
      なら、γさんのコードで、フォルダーコピーの部分を
      以下に差し替えて試してみてください。
      
              If dic.Exists(s) Then
                 For Each f In fso.getfolder(dic(s)).Files
                     MsgBox f.Path
                 Next
              Else
      
      ht tp://officetanaka.net/excel/vba/filesystemobject/
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191449] Re[14]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ sukuruto -(2020/02/23(00:38))
    □U R L/
      マナ様へ
      >印刷のコードは自力でかけたということですね。
      いえいえ かけません(◎_◎;) レベルが高すぎて・・・
      
      マナ様の記述から
      Sub test()
          Dim p As String
          Dim cmd As String
          Dim ss, s
          Dim c As Range
          Dim n As Long, k As Long
          
          p = "C:\印刷用¥excle\*.xlsx" ←ここだけ変更するということです
          cmd = "cmd /c dir " & p & " /b/s/a-d"
          ss = Split(CreateObject("wscript.shell").exec(cmd).stdout.readall, vbCrLf)
          For Each c In Range("A2", Cells(Rows.Count, 1).End(xlUp))
              s = Filter(ss, "\" & c.Value & "\")
              n = UBound(s)
              If n >= 0 Then
                  For k = 0 To n
                      MsgBox s(k) & vbLf & " を印刷"
                  Next
              Else
                  c.Offset(, 1).Value = "フォルダなし"
              End If
          Next
          
      End Sub
      
      一旦γ様の記述でフォルダをC:\印刷用にコピーして、その後マナ様の
      記述を使用させていただこうと思ったのです。
      サーバーを替えてサクサク印刷ができるようになれば
      共有フォルダからコピーしないでダイレクトにexcelファイルを
      印刷しようと思っております。
      
      マナ様 一つ教えていただきたいです
      今回は「完全一致」のフォルダ名を探すにしていただいてるのですが
      「含む」も必要になってくるかもしれません。
      「含む」はどのような記述になるのでしょうか?
      
      
      
      
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191450] Re[15]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/02/23(08:01))
    □U R L/

      >いえいえ かけません(◎_◎;) レベルが高すぎて・・・

      では、これはどういう意味ですか?

      >会社のサーバーが問題ありで自分の端末までコピーしてくると
      >何故かしらスイスイと印刷してくれます(^-^;

      わたしは、印刷部分はかいていませんが?

      >「含む」はどのような記述になるのでしょうか?

      最初に、γさんが、確認していますよね。
      なぜ、その時に言わないのですか?

      あいまい検索にすると、それこそ印刷前に確認が必要になりませんか。
      それでよいのすか。








    [191451] Re[16]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/02/23(08:51))
    □U R L/
      「含む」フォルダーをコピー
      あいまい検索なので、想定外のものもコピーする可能性あります。
      
      Sub test2()
          Dim wsh As Object
          Dim p1 As String    'From
          Dim p2 As String    'To
          Dim ss, s
          Dim c As Range
          Dim m
        
          Set wsh = CreateObject("wscript.shell")
          p1 = "\\192.168.999.999\専門別\エリア別¥excle\"
          p2 = ThisWorkbook.Path & "\印刷用\"
          ss = Split(wsh.exec("cmd /c dir " & p1 & " /b/s/ad").stdout.readall, vbCrLf)
          For Each c In Range("A2", Cells(Rows.Count, 1).End(xlUp))
              m = Application.Match("*\*\*" & c.Value & "*", ss, 0)
              If IsNumeric(m) Then
                  s = Split(ss(m - 1), "\")
                  wsh.Run "xcopy " & ss(m - 1) & " " & p2 & s(UBound(s)) & " /i/y/k/r"
              Else
                  c.Offset(, 1).Value = "フォルダなし"
              End If
          Next
          
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191452] Re[17]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/02/23(08:58))
    □U R L/

      m = Application.Match(p1 & "*\*" & c.Value & "*", ss, 0)

      のほうがよいかも。





    [191453] Re[18]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/02/23(10:30))
    □U R L/
      考えてみたら、Matchだと、最初の1個だけになるのでだめですね。
      ボツにして差し替えください。
      [191429]と同じ方法なので、だめかもしれません。
      
      Sub test3()
          Dim wsh As Object
          Dim p1 As String    'From
          Dim p2 As String    'To
          Dim sss, ss, s
          Dim c As Range
          Dim n As Long, k As Long
      
          Set wsh = CreateObject("wscript.shell")
          p1 = "\\192.168.999.999\専門別\エリア別¥excle\"
          p2 = ThisWorkbook.Path & "\印刷用\"
          sss = Split(wsh.exec("cmd /c dir " & p1 & " /b/s/ad").stdout.readall, vbCrLf)
          For Each c In Range("A2", Cells(Rows.Count, 1).End(xlUp))
              ss = Filter(sss, c.Value)
              n = UBound(ss)
              If n >= 0 Then
                  For k = 0 To n
                      s = Split(ss(k), "\")
                      wsh.Run "xcopy " & ss(k) & " " & p2 & s(UBound(s)) & " /i/y/k/r"
                  Next
              Else
                  c.Offset(, 1).Value = "フォルダなし"
              End If
          Next
          
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191454] Re[19]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ γ -(2020/02/23(12:14))
    □U R L/
      マナさん、勉強させていただいています。
      
      ・フォルダパスの中に、管理番号的な数値が入ってこない
      ・ひとつの管理番号が、他の管理番号の一部に現れることがない
      といったことが、もし保証されるのであれば、
      s = Filter(ss, "\" & c.Value & "\")
      を
      s = Filter(ss, c.Value, True )
      としてしまったらまずいでしょうか。含むになりそうな気もしますが。
      
      (*)後者は余り保証されないような気もしますが。これは質問者さんに
      お尋ねすることですね。
      




    [191455] Re[20]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/02/23(14:42))
    □U R L/
      γさん、こちらこそ、大変お世話になっています。
      
      >・フォルダパスの中に、管理番号的な数値が入ってこない
      
      このケースを心配していました。
      極端な例で、192 と間違って入力されたら困ると思いました。
      
      >・ひとつの管理番号が、他の管理番号の一部に現れることがない
      
      部分一致で複数ヒットさせたいのかと想像し、その場合は、問題ないと思いました。
      ただ、意図せずヒットすることも、あるだろうから、
      いきなり印刷は、怖いと思いました。
      
      
      で、結局、どうしてよいか迷って
      Sub test3()で、
      いきなり印刷しないのであれば
      
      >s = Filter(ss, c.Value, True )
      
      でよいかと、妥協しました。
      
      印刷の前の確認手段として、
      フォルダーをコピーするのが適切か、わたしには、判断できませんが、
      γさんご提案の
      
      >私だったら、特にフォルダをコピーせずに、
      >もとのシートの"625624560010"の右横の列に
      >その対応フォルダパスを書き付けておき、
      >必要に応じて、その配下の Excelファイルを直接、印刷するようにしますね。
      
      わたしも、おそらく、この方向で検討すると思います。
      
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191458] Re[21]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ γ -(2020/02/23(17:33))
    □U R L/
      >極端な例で、192 と間違って入力されたら困ると思いました。
      なるほど、これはこれで危険ですね。
      
      印刷量がどの程度かわかりませんが、
      途中でトラブルことも想定すると、
      分割して印刷(場合によっては一括)できる仕組みに
      しておいたほうがいいんでしょうね。
      
      ありがとうございました。




    [191469] Re[22]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ sukuruto -(2020/02/24(04:04))
    □U R L/

      マナ様へ

      >わたしは、印刷部分はかいていませんが?
      そうなのですか・・・すいません。
      今はγ様の記述をマクロ実行ボタンに登録できたところで
      印刷まではまだ準備中なのです(*_*;


      >最初に、γさんが、確認していますよね。
      >なぜ、その時に言わないのですか?
      今は、管理番号だけの名前になっていますので
      完全一致でいいと思っておりました。
      しかしこのファイルを作成しているのが別部署でして
      3月から管理番号の前に男用-、女用-、子供用-、etc…を
      つけると言う話がでてきてしまったのです((+_+))
      男用-625624560010とか女用-1036555443236500です。
      このフォルダの中のexcelbook(4個か5個格納 それぞれ3ページ以内です)
      を印刷できればと思っています。

      >わたしも、おそらく、この方向で検討すると思います。
      この方法だとA列に入力した順番で印刷してくれるのしょうが
      私には難しいです・・・。




    [191470] Re[23]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/02/24(08:03))
    □U R L/

      管理番号にルールはありますか
      例えば、12桁以上の数字とか、その他なんでも。





    [191472] Re[24]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/02/24(08:29))
    □U R L/
      >3月から管理番号の前に男用-、女用-、子供用-、etc…
      
      必ず、- がつくなら
      γさんのコードを、以下のようにすると対応可能と思います。
      
      Function getSubFolder(obj As Object)
          Dim o As Object
          Dim v
          For Each o In obj.SubFolders
              v = Split(o.Name, "-")
              dic(v(UBound(v))) = o.Path
              Call getSubFolder(o)
          Next
      End Function


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191473] Re[25]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/02/24(08:48))
    □U R L/

      管理番号に - が含まれる可能性があるなら(625624560010-1、625624560010-2)
      "用-"でSplitしてください。

      v = Split(o.Name, "用-")




    [191474] Re[26]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/02/24(11:03))
    □U R L/
      >印刷まではまだ準備中なのです(*_*;
      
      
      >印刷まではまだ準備中なのです(*_*;
      
      印刷はできたように受け取れましたが…
      
      フォルダーコピーでなく、印刷ならこんな感じで。
      (フォルダにエクセル以外のファイルはない前提)
      
                 For Each f In fso.getfolder(dic(s)).Files
                       With Workbooks.Open(f.Path, ReadOnly:=True)
                           .PrintOut
                           .Close
                       End With
                  Next
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191496] Re[27]: フォルダを検索-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2020/02/24(18:24))
    □U R L/
      フォルダのコピーでも、印刷でもなく
      B列にフォルダへのリンクを作成
      
            Dim pFoler As String
      
            If dic.Exists(s) Then
                  pFoler = fso.getfolder(dic(s)).parentfolder.Name
                  Cells(i, 2).Formula = "=hyperlink(""" & dic(s) & """,""" & pFoler & """)"
              Else
                  Cells(i, 2).Value = "フォルダなし"
              End If
      
      
      フォルダを開いて間違いがないか確認できたら
      ファイルを全選択し、右クリックから「印刷」を実行すればよいです
      
      以上で最後。わたしは、ここまで。
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [191512] Re[28]: フォルダを検索-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ sukuruto -(2020/02/25(00:54))
    □U R L/

      マナ様へ

      丁寧に教えて頂き本当にありがとうございます。
      >管理番号に - が含まれる可能性があるなら
      >(625624560010-1、625624560010-2)
      >"用-"でSplitしてください。v = Split(o.Name, "用-")
      ここまで考えて下さってとても嬉しいです!


      今r様のコードを変更して実行してみましたら
      「含む」でコピーしました(*^^*)
      それと「リンク」も作成できました!感激です!


      「印刷」は家にはプリンターがないので実行できてませんが
      会社でやってみます。

      VBAってすごいです! r様 マナ様 本当に有難うございました(*^^*)



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G