重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

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
--------------------------------------------------------------

A 回答 (3件)

単にループ中に自分自身とおなじパスかをチェックすればいいのでは?



>Do While myName <> ""
の下に
If myName <> ThisWorkbook.Name Then


>myName = Dir()
の上に
End If
    • good
    • 0
この回答へのお礼

ありがとうございます!
とても綺麗に仕上がりました!!

お礼日時:2009/04/13 13:03

myDir = ThisWorkbook.Path



と言う事?
    • good
    • 0
この回答へのお礼

myDir = ThisWorkbook.Path
で読み込めました!!ありがとうございます!

お礼日時:2009/04/13 11:55

ThisWorkbook.Path


を使ってみては。
    • good
    • 0
この回答へのお礼

myDir = ThisWorkbook.Path
で読み込めました!ありがとうございます!

追加で宜しいでしょうか?
開いているブックも読み込みの対象になってしまうのですが、開いているブック自体は対象外にする場合はどのように記述したら宜しいのでしょうか?

宜しくお願いします。

お礼日時:2009/04/13 11:57

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