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

TimeStamp = Format(Now, "yyyymmddhhmmss")
FileCopy ".\注文書_45_50_12.xls", ".\注文書_" & TimeStamp & ".xls"

Dim wb As Workbook
Set wb = ".\注文書_" & TimeStamp & ".xls"


上記ソースをエクセルVBAに書き込みました。
Set wb = ".\注文書_" & TimeStamp & ".xls"

上記部分でエラーがおき、オブジェクトが必要と表示されます。
wbにどうやったら変数を使ったファイル名が格納されますでしょうか。

A 回答 (5件)

No3です。


>エクセルを開きたくないのですが、その場合、はどのようにすればよろしでしょうか。

開かずにwbを設定することはできません。
もし、excelを開かずにセルの内容を参照したいということであれば、
あまり推奨されませんが、ExecuteExcel4Macro があります。

下記URLを参照ください。
https://excel-ubara.com/excelvba4/EXCEL219.html
http://officetanaka.net/excel/vba/tips/tips28.htm
    • good
    • 0
この回答へのお礼

ありがとうございます。
こちらを参考に作業をしてみます!

お礼日時:2023/06/13 15:59

こんにちは



エラーの原因は
>Set wb = ".\注文書_" & TimeStamp & ".xls"
オブジェクト変数の wb に単純文字列を代入しようとしていることによるものです。
(左辺と右辺で内容が一致していないということです)

>wbにどうやったら変数を使ったファイル名が格納されますでしょうか。
ブック名を得たいのか、ブックオブジェクトを得たいのか、どちらなのでしょうか?

ブック名(=文字列)を得たいのであれば、
 Dim wb As String
 wb = "注文書_" & TimeStamp & ".xls"
とすることで、wb にはブック名(拡張子付き)の文字列が代入されます。

もしも、ブックオブジェクトを得たいのであれば、
 Dim wb As Workbook
 Set wb = Workbooks.Open(".\注文書_" & TimeStamp & ".xls")
などとしておくことで、ブックを開き、そのブックが wb オブジェクトに代入されます。
    • good
    • 1
この回答へのお礼

すみません。
色々ご教授いただきありがとうございます。

VBAあまりしたことがないのですが、したい事としては、
①CSVから値を取り出し、変数に格納する←完了
②注文書フォーマットコピーする←完了
③コピーしたフォーマットの特定の場所に変数の値を代入する

③で現在こけてます

Name = Workbooks("注文書_" & TimeStamp & ".xls").Worksheets(1).Range("F8")

と指定した際に「インデックスが有効範囲にありません」のエラーとなる為、エクセルファイルの指定がうまく行ってない、もしくは間違えていると考え色々試しております。

お礼日時:2023/06/13 15:43

Set wb = ".\注文書_" & TimeStamp & ".xls"



Set wb = Workbooks.Open(Filename:=".\注文書_" & TimeStamp & ".xls")

に変えてください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
エクセルを開きたくないのですが、その場合、はどのようにすればよろしでしょうか。

お礼日時:2023/06/13 15:33

あ、ブックを開く前だったのなら



Set wb = workbooks.open ".\注文書_" & TimeStamp & ".xls"

とかかも?
    • good
    • 0

ブック名と拡張子だけでいいので



Set wb = "注文書_" & TimeStamp & ".xls"

こうじゃないかな?

あるいは【分】の指定が違うとかかな?

? Format(now(),"yyyymmddhhnnss")
20230613152018

上記はイミディエイトウィンドウで検証。
言語によっては月を【MM】としてたかも。
https://www.sejuku.net/blog/33422
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
コチラは事前に試したのでがダメでした><;

お礼日時:2023/06/13 15:36

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A