プロが教える店舗&オフィスのセキュリティ対策術

Dim nendo As Integer
FilePath = ActiveWorkbook.Path
nendo = Range("k4").Value
Workbooks("仕訳_支出_XXXX年度.xlsm").SaveAs Filename:=FilePath & "\仕訳_支出_" & nendo & "年度.xlsm"

上記の構文を実行すると最終行で「インデックスの有効範囲ではありません。」のエラーメッセージとなります。対処方法のご教授よろしくお願いします。

A 回答 (3件)

#1です。


#2さんのおっしゃるとおりです。

「仕訳_支出_XXXX年度.xlsm」というファイルを作り、オープンにすると動きました。

Dim nendo As Integer
FilePath = ActiveWorkbook.Path

Workbooks.Open Filename:=FilePath & "\仕訳_支出_XXXX年度.xlsm"

nendo = Range("K4").Value
Workbooks("仕訳_支出_XXXX年度.xlsm").SaveAs Filename:=FilePath & "\仕訳_支出_" & nendo & "年度.xlsm"

ActiveWindow.Close

マクロでオープンさせるなら、手続きの前後にOpenとCloseを入れると動きました。
    • good
    • 0
この回答へのお礼

度々のご回答ありがとうございます。
#2さんにお礼した通りファイル名を変更したことを失念しておりました。
誠にお恥ずかしい限りです。
ご指導ありがとうございました。

お礼日時:2022/08/16 23:47

エラー9であれば


仕訳_支出_XXXX年度.xlsm の綴りが間違っているか
開いていないのでは無いでしょうか?
確認してみてください
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ご指摘の箇所確認しました。
お恥ずかしいはなしです。
ファイル名を変更したことを忘れていました。
解決しました。
ありがとうございました。

お礼日時:2022/08/16 23:41

スマホからですので、確かめしてませんが、Rangeで指定するセル番地は、k4でなくK4だったような。



K4のセルは、文字列になっているとか。その場合、一行目のDim文のInteger型宣言を削除です。
    • good
    • 0
この回答へのお礼

早急のご回答ありがとうございます。
ご指摘箇所確認したところ K4のセルは標準となっており数値に修正しました。またセル番地もK4と修正し実行したのですが同じ結果でした。

お礼日時:2022/08/16 21:20

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