ここから本文です

vbaで外部参照のアドレスが正しく返ってきません。

ali********さん

2014/3/920:39:40

vbaで外部参照のアドレスが正しく返ってきません。

エクセルで別ブックのデータをもとに現ブックに名前の定義をして使いたいと思っております。
参照するブックは2つで1つは正しく反映されるのですが、もう1つが
『名前が正しくありません』とエラーがでます。

Sub 各ファイルの名前の再定義()
Dim nm As String, nm2 As String
Dim Rng As Range
Dim xlbook As Excel.Workbook, xlbook2 As Excel.Workbook

Workbooks.Open "c:\users\user\dropbox\Food\フード単品原価表.xlsm"
Workbooks.Open "c:\users\user\dropbox\Food\'14 Drink Item List.xlsm"

'----フードの名前の再定義
i = 1
Set xlbook = Workbooks("フード単品原価表.xlsm")
For i = 2 To xlbook.Worksheets.Count
With xlbook.Worksheets(i)
If .Name = "データ" Then Exit For
nm = .Name
Workbooks("移動伝票").Activate
ActiveWorkbook.Names.Add Name:=nm, RefersToR1C1:= _
"=" & .Range("A2", .Cells(Rows.Count, 1).End(xlUp)) _
.Address(ReferenceStyle:=xlR1C1, external:=True)
End With
Next i

'----ドリンクの名前の再定義
i = 1
Set xlbook2 = Workbooks("'14 Drink Item List.xlsm")
For i = 2 To xlbook2.Worksheets.Count
With xlbook2.Worksheets(i)
If .Name = "データ" Then Exit For
nm2 = .Name
Workbooks("移動伝票").Activate
ActiveWorkbook.Names.Add Name:=nm2, RefersToR1C1:= _
"=" & .Range("A2", .Cells(Rows.Count, 1).End(xlUp)) _
.Address(ReferenceStyle:=xlR1C1, external:=True)
End With
Next i

End Sub

参照範囲を確認してみたところ
1つ目のファイルは
[フード単品原価表.xlsm]加工品!R2C1:R19C1
とでますが、
2つ目のファイルは
'[''14 Drink Item List.xlsm]Scotch'!R2C1:R14C1
と ’ が多くついてしまいます。
この原因がわからず困っております。
よろしくお願い致します。

補足たびたび御回答ありがとうございます。
イミディエイトにてnm2にはシート名が入ってるのを確認してます。
シート名は正確には『Scotch Malt Speyside』としてあり、
それを定義名として使いたいと思ってます。
シート名がいけないのでしょうか?

閲覧数:
248
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

roc********さん

編集あり2014/3/921:45:15

>シート名は正確には『Scotch Malt Speyside』としてあり、
>それを定義名として使いたいと思ってます。
>シート名がいけないのでしょうか?

はい、その通りです。定義の名前に空白は使えません。残念ながら…。

---------------------------------------------------------------------------
>'[''14 Drink Item List.xlsm]Scotch'!R2C1:R14C1
ああ、ファイル名に半角のシングルコーテーションを使っているのですね。
それなら'が付くのは正常ですね。
『名前が正しくありません』というエラーなら定義の名前、nm2が怪しそうですがそれはどうなっていますか?

質問した人からのコメント

2014/3/9 22:10:42

ほんとに基本的なことだったんですね…
もっと勉強します。
何度もありがとうございました。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる