[[20200425230304]] 『パス名とブックのシート名全部を出力させたい』(眠神) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『パス名とブックのシート名全部を出力させたい』(眠神)

 Excelの神髄というサイトで練習問題17からの学習をしているのですが、
練習17の見本通りにパス名とブック名を"練習17"のA列、 B列に入力して、
1つのブックから全てのシートを"練習17_回答"のA列にブック名、
B列にシート名を出力させたいのですが、
僕の場合"マクロ練習"のブックの全てのシートと、
"販売管理プログラム"のブックの全てのシートを"練習17_回答"に、
それぞれA列、B列に出力させたいのですが、
"マクロ練習"のブックとシートしか、"練習17_回答"のA列、B列に出力する事が出来ず、
"販売管理プログラム"のブック名と全てのシート名は出力出来ませんでした。 
 ちなみに練習問題17の解答通りにコードは入力しました。 
長文申し訳ございませんが、もし良ければ、御教授頂けると幸いです。

 Sub 練習問題17()
  Dim i As Long
  Dim j As Long
  Dim wb As Workbook
  Dim ws As Worksheet
  Dim wsAns As Worksheet
  Application.DisplayAlerts = False
  For Each ws In Worksheets
    If ws.Name = "練習17_回答" Then
      ws.Delete
      Exit For
    End If
  Next
  Application.DisplayAlerts = True
  Worksheets.Add after:=Worksheets("練習17")
  Set wsAns = ActiveSheet
  With wsAns
    .Name = "練習17_回答"
    .Cells(1, 1) = "ブック名"
    .Cells(1, 2) = "シート名"
  End With
  j = 2
  With Worksheets("練習17")
    For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
      Set wb = Workbooks.Open(.Cells(i, 1) & "\" & .Cells(i, 2))
      wsAns.Cells(j, 1) = wb.Name
      For Each ws In wb.Sheets
        wsAns.Cells(j, 2) = ws.Name
        j = j + 1
      Next
      wb.Close SaveChanges:=False
    Next
  End With
End Sub 
https://excel-ubara.com/excelvba9/EXCELVBA617.html

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 >練習17の見本通りにパス名とブック名を"練習17"のA列、 B列に入力して、

 何行目に書きましたか?

 1行目はタイトルの想定らしいですが。
 ※列番だけで、行番号をチャンと明示しない人もほめられないけども。。

(半平太) 2020/04/26(日) 00:04


半平太さんへ 
練習17の見本通りにパス名とブック名を"練習17"のA列、B列に入力して、  
この部分は見出しの「パス」と「ブック」は1行目に入力しております。 
2行目からパス名とブック名を入力しております。 
(眠神) 2020/04/26(日) 00:19

ちゃんと読み込んでないけど、思う通りに行かない場合、一旦ステップ実行して、1行ずつ動きをチェックしていくのも有効だと思います。

よく見たら「i」とすべきところを「j」にしていたなんてこともあるでしょうし・・

(もこな2 ) 2020/04/26(日) 00:24


 その方法もありましたねΣ(-᷅_-᷄๑) 
もこな2さん、ありがとうございます^_^
(眠神) 2020/04/26(日) 00:38

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.