電子書籍の厳選無料作品が豊富!

セルに入力した内容をファイルネームとして外部ファイルを開きたいのですが
どうすればいいのかわかりません。

具体的には
1.外部ファイルはFDで供給されます。
2.FDに入れられるファイル名は毎日かわります。
3.ファイル名は固定された名称+日付のフォーマットです。(例:file0802)
4.やろうとしているのはA1に\"file\"、B1にtoday関数で日付を入力して
  A1+B1をファイル名としマクロよりそのファイル名でFDのファイルを
 開きたい。
5.開いたファイルの一部をコピーしてHDD上にあるエクセルのファイルに
 ペースト、このファイルにマクロを組み込みたいのです。

help等をいろいろ見たのですがこの内容に関するものが見つけられません。
もしかしたら出来ないのでしょうか?

よろしくお願いします。

A 回答 (6件)

4.やろうとしているのはA1に\"file\"、


FDに更にフォルダがあって その中の file0802.xls?

Workbooks.Open Filename:="A:" & Range("A1") & "file" & WorksheetFunction.Text(Range("B1"), "mmdd") & ".xls"
の事でしょうか?
Workbooks.Open Filename:="A:" & Range("A1") & WorksheetFunction.Text(Range("B1"), "mmdd") & ".xls"
かな?
ちがったら C1セルに
="A:"&A1&"file"&TEXT(B1,"mmdd")&".xls"
関数を準備してみるとわかりかわりやすいかも?
Workbooks.Open Filename:=Range("C1")
でもOKかと。
    • good
    • 0
この回答へのお礼

おかげで解決できました。
後半の関数を使うやり方だと途中経過がわかりやすく
良く理解できました。
ありがとうございました。

お礼日時:2008/08/05 10:24

Dim abc As Integer


通常、上記の様に変数の型を宣言するのですが、型の宣言は要らないけど、変数の宣言が要るソースからの
流用でしたので表示されてますが、Excelでは無くても動作しますので、無視して下さってかまいません。
    • good
    • 0

すいませんコードミスったので、こちらで


Sub test()
Dim PasteSheet, MyFilename, FileToOpen1, FileToOpen2, MyDate
PasteSheet = "Sheet1" '貼り付けるシート名
MyFilename = Range("A1") '読込むファイル名の記入
MyDate = Format(Range("B1"), "mmdd") '読込むファイル名の日付
FileToOpen1 = "貼付エクセル.xls" '貼り付けるファイル名
FileToOpen2 = MyFilename & MyDate & ".xls"
Workbooks.Open Filename:="C:\" & FileToOpen1
Workbooks.Open Filename:="A:\" & FileToOpen2
Range("A1:IV65536").Select '全セル選択
Selection.Copy
Windows(FileToOpen1).Activate
Worksheets(PasteSheet).Activate
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False

Application.Windows(FileToOpen2).Close
End Sub
    • good
    • 0
この回答へのお礼

複雑なマクロをお手数おかけしました。
案件についてはANo.1で解決したのですがこちらも参考にさせて
もらいます。
勉強不足でよくわからないのですが冒頭のDimはどのような意味を
もつのでしょうか?
ヘルプ見たんですがよくわからなくて(^^ゞ
お忙しいようでしたら無理しなくても結構ですのでお手数でなければ
教えてもらえればと思います。

お礼日時:2008/08/05 10:57

前提条件


貼りつけ先ブック名を「貼付エクセル.xls」とする
貼りつけ先のファイルは、Cドライブ直下に在る物とする

Sub test()
Dim PasteSheet, MyFilename, FileToOpen1, FileToOpen2, MyDate
FileToOpen1 = "貼付エクセル.xls" '貼り付けるファイル名
FileToOpen2 = MyFilename & MyDate & ".xls"
PasteSheet = "Sheet1" '貼り付けるシート名
MyFilename = Range("A1") '読込むファイル名の記入
MyDate = Format(Range("B1"), "mmdd") '読込むファイル名の日付

Workbooks.Open Filename:="C:\" & FileToOpen1
Workbooks.Open Filename:="A:\" & FileToOpen2
Range("A1:IV65536").Select '全セル選択
Selection.Copy
Windows(FileToOpen1).Activate
Worksheets(PasteSheet).Activate
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False

Application.Windows(FileToOpen2).Close
End Sub

綺麗で無いコードですが、これでどうですか?
    • good
    • 0

他サイトですが参考になると思います。



セルの内容で外部ファイルを開きたい
http://excelfactory.net/excelboard/excelvba/exce …
    • good
    • 0

5点ほど補足が欲しいところです。



1)A1の「\"file\"」ですが、このふたつの\はどのような意味を持ちますか?
2)FDに入っているファイルはどんな形式ですか。xlsファイルですか、テキスト
  またはCSVファイルですか?それとも他の形式ですか。
3)質問の趣旨は、ファイルを開くことだけですか?
  それともコピー&ペーストの方法も含めてですか。
4)コピー&ペーストの方法も知りたいのであれば、「開いたファイルの一部」の
  範囲指定はどのように与えられますか?
5)「HDD上にあるエクセルのファイルにペースト、このファイルにマクロを組み込
  みたいのです。」ということは「A1に\"file\"、B1にtoday関数で日付を入力し
  て」あるファイルにマクロを組み込みたいと云うことですか?
  であれば、ペーストする場所(シート/セル)はどのように与えられますか?

以上補足お願いいたします。

この回答への補足

1)
\は意味がないものですコピーした際に変なコードが混ざったようです。
2)
FDのファイルはCSVファイルです。
3),4),5)
今回はファイルを開くことのみです、よけいなことも書いてしまい申し訳ありません。

補足日時:2008/08/05 10:25
    • good
    • 0

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