プロが教えるわが家の防犯対策術!

VBAマスターブックの作成につきまして
質問致します
複数のブックに複数のシートが有ります
保存ファイルは1つにまとめてあります

マスターブック
セルB5にブック名
セルD5にシート名
を入力して該当するブックのシートを
開くようなマクロを作成したいのですが
上手く行きません

マクロ初心者の為
記入内容をわかりやすく教えて頂けないでしょうか
よろしくお願いします。

質問者からの補足コメント

  • 補足します

    複数のブックとマスターブックは別に有るので
    シート名 検索
    B3にフォルダーURL
    B5にブック名
    D5にシート名

    B3のフォルダー内に有る
    B5のブック名のD5のシート名と
    一致するシートを開く様にしたいです

    シートの数は2〜30の物も有れば
    100有る物も有りますので
    必要な際にシートを閲覧出来るようにしたいので
    開くだけで構いません
    如何でしょうか

    よろしくお願いします。

      補足日時:2017/01/24 15:41

A 回答 (2件)

以下のマクロを標準モジュールへ登録してください。


----------------------------
Public Sub 検索処理()
Dim sh As Worksheet
Dim dir_name As String
Dim book_name As String
Dim sheet_name As String
Dim book_path As String
Set sh = Worksheets("検索")
dir_name = sh.Range("B3").Value
book_name = sh.Range("B5").Value
sheet_name = sh.Range("D5").Value
book_path = dir_name & "\" & book_name
If dir(dir_name, vbDirectory) = "" Then
MsgBox (dir_name & "は存在しません。")
Exit Sub
End If
If dir(book_path) = "" Then
MsgBox (book_name & "は存在しません。")
Exit Sub
End If
Workbooks.Open book_path
Workbooks(book_name).Activate
If ExistsWorkSheet(sheet_name) = False Then
MsgBox (book_name & "中に" & sheet_name & "は存在しません")
Workbooks(book_name).Close
Exit Sub
End If
Worksheets(sheet_name).Activate
Range("A1").Activate
MsgBox ("検索完了")
End Sub

'ワークシートの存在チェック
Public Function ExistsWorkSheet(ByVal sheetName As String) As Boolean
Dim ws As Worksheet
ExistsWorkSheet = False
For Each ws In Worksheets
If UCase(ws.name) = UCase(sheetName) Then
ExistsWorkSheet = True
Exit Function
End If
Next ws
End Function
------------------------------------
添付の図のようにセルに検索条件が設定されていることが前提です。
B3:フォルダ名
B5:ファイル名(ブック名)
D5:シート名
「VBAマスターブックの作成につきまして 」の回答画像2
    • good
    • 0
この回答へのお礼

ありがとうございます
イメージ通りの物が出来ました!!

お礼日時:2017/01/24 16:47

補足要求です。


質問1)複数のブックとマスターブックは同じフォルダ内にありますか。
もし、別フォルダに複数のブックがあるなら、そのフォルダ名もどこかのセルに指定しないといけません。

質問2)マスターブックのどのシートのセルB5、D5に書いておくのでしょうか。(シート名はなんですか)

質問3)セルB5にブック名を指定すると、そのブックをオプーンするマクロは作成可能です。
シートはオープンする必要はありません。
ですので、シート名の記述は不要かと。
オープンした後で、そのシート名でどうなさりたいのかが提示されれば、もうすこし、進んだ話ができそうですが・・・・。
    • good
    • 0

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