- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA 「名前の定義」で参照範囲RefersToR1C1に)
Excel VBAで「名前の定義」で参照範囲RefersToR1C1にString型を代入するとダブルクォーテーションが入ってしまう問題を解決するには?
このQ&Aのポイント
- Excel VBAで「名前の定義」で参照範囲にString型を代入するとダブルクォーテーションが入ってしまう問題について解決方法を説明します。
- ダブルクォーテーションをつけずに正しく参照範囲を設定する方法をご紹介します。
- 参照範囲にダブルクォーテーションを入れないためのコードの書き方として、代入する文字列の前後にシングルクォーテーションを付ける方法があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
変更前: str = "'" + Range("B162").Value + "'" + "!A1:Z65535" 変更後: str = "='" & Range("B162").Value & "'" + "!R1C1:R65535C256" ↑「=」を追加 などでどうぞ。 #間違いのその2: referstoR1C1に与えるのに,A1型式文字列を記述している A1とR1C1どちらでもできるが,混在はしないこと #間違いのその3: 相対参照の文字列を与えているので,間違った範囲が定義される。 A1とR1C1どちらでもできるが,絶対参照の記述で与えること
その他の回答 (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 = ""
質問者
お礼
こちらの説明が足りず、申し訳ございませんでした。 最後のは関係なかったです。ありがとうございます。
お礼
ありがとうございます。 どこが間違っていたのかも教えていただいて、とても助かります。