• ベストアンサー

エクセルで、D6からK6のセルにある文字列をそのままシート名にしたいで

エクセルで、D6からK6のセルにある文字列をそのままシート名にしたいですがうまくいきません。型が違いますとのエラー表示ですが意味がわかりません。 Sub 内訳明細シート名に現場名反映() ActiveSheet.Name = ActiveSheet.Range("D6:K6").Value End Sub この式をどう修正したらよいでしょうか?

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

No.2です! 投稿した後でNo.1さんの補足を読ませてもらいました。 安直な方法ですが ActiveSheet.Name = Range("D6") & Range("E6") & Range("F6") & Range("G6") & Range("H6") & Range("i6") & Range("J6") & Range("K6") ではどうでしょうか? 他に良い方法があれば読み流してくださいね。m(__)m

a_nyan
質問者

お礼

ありがとうございます。&を付けるという手があったのですね・・勉強になりました(^^)

その他の回答 (3)

  • Tip3000
  • ベストアンサー率9% (5/55)
回答No.4

♯3氏の書かれている方法がそれにあたります が、.Valueか.Textかを付けたほうがいいですね

a_nyan
質問者

お礼

丁寧な回答ありがとうございました!!勉強になりました(^^)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! すでに回答は出ていると思いますが・・・ Sheet名は複数セルを対象にできないはずです。 もしかしてD6~K6セルを結合しているのですかね? そうであれば ActiveSheet.Name = Range("D6") にしてみてください。 以上、参考になれば良いのですが 外していたらごめんなさいね。m(__)m

  • Tip3000
  • ベストアンサー率9% (5/55)
回答No.1

シートは1つです なのに対象となるセルが複数なのはなぜですか? ActiveSheet.Name = ActiveSheet.Range("D6").Value ならばうまくいきますが・・

a_nyan
質問者

補足

複数のセル内の文字列をつなげて一つのシート名にしたいのです。 厳しいでしょうか・・。