• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA 「名前の定義」で参照範囲RefersToR1C1に)

Excel VBAで「名前の定義」で参照範囲RefersToR1C1にString型を代入するとダブルクォーテーションが入ってしまう問題を解決するには?

このQ&Aのポイント
  • Excel VBAで「名前の定義」で参照範囲にString型を代入するとダブルクォーテーションが入ってしまう問題について解決方法を説明します。
  • ダブルクォーテーションをつけずに正しく参照範囲を設定する方法をご紹介します。
  • 参照範囲にダブルクォーテーションを入れないためのコードの書き方として、代入する文字列の前後にシングルクォーテーションを付ける方法があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

変更前: str = "'" + Range("B162").Value + "'" + "!A1:Z65535" 変更後: str = "='" & Range("B162").Value & "'" + "!R1C1:R65535C256"     ↑「=」を追加 などでどうぞ。 #間違いのその2:  referstoR1C1に与えるのに,A1型式文字列を記述している  A1とR1C1どちらでもできるが,混在はしないこと #間違いのその3:  相対参照の文字列を与えているので,間違った範囲が定義される。  A1とR1C1どちらでもできるが,絶対参照の記述で与えること

xls924
質問者

お礼

ありがとうございます。 どこが間違っていたのかも教えていただいて、とても助かります。

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

RefersToR1C1にはStringではなく、Rangeを与えます。 次のように変えてください。 ActiveWorkbook.Names.Add Name:="name", RefersToR1C1:=str ↓ ActiveWorkbook.Names.Add Name:="name", RefersToR1C1:=Range(str) 最後の↓は今回の質問と無関係と考えていいですよね? ActiveWorkbook.Names("tes1").Comment = ""

xls924
質問者

お礼

こちらの説明が足りず、申し訳ございませんでした。 最後のは関係なかったです。ありがとうございます。

関連するQ&A

専門家に質問してみよう