- ベストアンサー
VBA 開いているブックの場所
ExcelでVBAを利用して、フォルダ(c:\"VBA練習")に置いてあるExcleの内容を、開いているExcleに自動読取り作業をするために、下記のようなコードを記述しました。(正常に動作します) そこで、ご相談なのですが、現在は特定のフォルダ(c:\"VBA練習")にExcelを置かないと読み取りは実現しません。ですが、開いているBookが置いてある"場所"にあるExcelを読み取りたい場合、どのように書き換えれば宜しいでしょうか? ご教授いただけると助かります。宜しくお願いします。 -------------------------------------------------------------- Private Sub 読込ボタン_Click() Dim myDir As String, myName As String, myBook As Workbook Dim copydata As Range, GYO As Range Dim SH2 As Worksheet, SH1 As Worksheet Set SH2 = ThisWorkbook.Worksheets("情報シート") '集計用のブックがあるフォルダ名を指定 myDir = "C:\VBA練習" myName = Dir(myDir & "\" & "*.xls") Do While myName <> "" Set GYO = SH2.Range("A65536").End(xlUp).Offset(1) '(1)指定した名前のブックを開いて変数に格納する Set myBook = Workbooks.Open(Filename:=myDir & "\" & myName) '(2)転記元を取得する Set SH1 = myBook.Worksheets("回答内容") Set copydata = SH1.Range("Z1").Resize(100, 1) '(3)転記先に貼り付ける copydata.Copy GYO.PasteSpecial Paste:=xlPasteValues, Transpose:=True '(4)開いたブックを閉じる myBook.Close myName = Dir() Loop End Sub --------------------------------------------------------------
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
単にループ中に自分自身とおなじパスかをチェックすればいいのでは? >Do While myName <> "" の下に If myName <> ThisWorkbook.Name Then >myName = Dir() の上に End If
その他の回答 (2)
- n-jun
- ベストアンサー率33% (959/2873)
myDir = ThisWorkbook.Path と言う事?
お礼
myDir = ThisWorkbook.Path で読み込めました!!ありがとうございます!
- bluecampus
- ベストアンサー率66% (138/209)
ThisWorkbook.Path を使ってみては。
お礼
myDir = ThisWorkbook.Path で読み込めました!ありがとうございます! 追加で宜しいでしょうか? 開いているブックも読み込みの対象になってしまうのですが、開いているブック自体は対象外にする場合はどのように記述したら宜しいのでしょうか? 宜しくお願いします。
お礼
ありがとうございます! とても綺麗に仕上がりました!!