グラフのタイトルにセル内の文字列を使うには?

このQ&Aのポイント
  • Excelのマクロで、セル内の文字列をグラフのタイトルに使いたい場合、ChartTitle.Characters.Textプロパティを使用します。具体的な手順は以下の通りです。まず、InputBoxでユーザーから入力された数値を受け取り、その数値を利用してセルの位置を決定します。次に、そのセルの文字列をChartTitle.Characters.Textに代入します。
  • 具体的には、セルの範囲を変数に代入し、ChartTitle.Characters.Textに「=Sheet1!」とセルの範囲を結合させた文字列を代入します。これにより、指定したセルの文字列がグラフのタイトルとして表示されます。
  • ただし、一部の初心者は、セルの範囲を文字列として結合する際に、シート名と変数名がそのまま表示されてしまうことがあります。この場合は、文字列の結合方法を確認し、正しい形式に修正する必要があります。
回答を見る
  • ベストアンサー

グラフのタイトルにセル内の文字列を使うには?

Excelにて、InputBoxで入力された数の行を参照して、 グラフを生成するマクロを以下のように作成しています。 データの範囲は以下のようにInputBoxでの入力された数値を使って 処理できたのですが、タイトルが上手く処理できません。 入力された数値を利用して、値を参照するセルの位置を決定し、 そのセルに入力されている文字列を .ChartTitle.Characters.Text の値として代入したいのですが どう記述すればいいのでしょうか? 以下のように(抜粋)、セルの範囲を一旦変数titleRangeに代入し、 .ChartTitle.Characters.Text = "=Sheet1!" & titleRange と記述して、セル内の文字列を参照させたかったのですが、 文字列として、シート名と変数名がそのまま表示されてしまいます。 初心者なので、分かりにくい説明で申し訳ありませんが、 グラフのタイトルに指定したセル内の文字列をセットする 方法を教えていただけないでしょうか? colNum = InputBox("対象行") titleRange = "R" & colNum & "C1" With ActiveChart   .HasTitle = True   .ChartTitle.Characters.Text = "=Sheet1!" & titleRange End With

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

  • ベストアンサー
回答No.1

まず、訂正から。 titleRange = "R" & colNum & "C1" ""で囲まれると文字列として確定してしまいます。 この場合、 titleRange =Sheet1.Cells(colNum,1) (Sheet1のcolNum行目の1列目のセル)だと思います。 With ActiveChart   .HasTitle = True   .ChartTitle.Characters.Text = "=Sheet1!" & titleRange End With と、ここですが、やっぱり""(ヌルストリング)で囲まれるとそのまま文字列になっちゃいますので、さきほど代入した titleRange を利用して、 With ActiveChart   .HasTitle = True   .ChartTitle.Characters.Text = titleRange End With でいいと思います。

schpeltor
質問者

お礼

なるほど。""で囲んでしまっているから、文字列とみなされてしまうわけですね。 教えていただいた方法で、自分のやりたいことが実現できました。 どうもありがとうございました。

関連するQ&A

  • エクセルにて、テクストボックスにセルの文字列を参照させているのですが、

    エクセルにて、テクストボックスにセルの文字列を参照させているのですが、セルの文字列の255文字分しか参照してくれません。テキストボックスに256文字以上参照させるにはどうすればよいでしょうか。よろしくお願いします。

  • エクセルのマクロについて 文字列操作について

    文字列操作で困っています。 A3セル以下、A列に、04/、03/、99/。。。と文字列が入力されており、それぞれ、最初の2文字を取り出して数字に変換し、それぞれを変数 qwe1 qwe2 qwe3 ... に代入したいのです。 そのための構文が知りたいのです。 また、文字列のまま、たとえば上記の/を、変数 asd に代入するにはどうしたらよいのでしょうか? ちなみに、 Range("B3").Select ActiveCell.FormulaR1C1 = "=VALUE(MID(R[-2]C[1],1,2))" という形の構文で、一旦エクセルのセルに代入して、再度、変数に放り込む形だとうまくいくのですが、数列、数十行同じ作業を繰り返すために、for next 構文を使わないと、不便で使い物になりません。 そこで、R[-2]C[1] の部分に cells(qwe,1)を使ってもエラーが出てうまく作動しませんでした。 なお、エクセル2003、OS=XPです。 再度要約しますと、 1.文字列の一部を取り出して数字に変換し、それを変数に代入したい。 2.文字列の一部の文字を取り出して、それを変数に代入したい。 3.上記1,2を繰り返すので、その繰り返すことが出来る構文が知りたい。 以上です。 どなたか教えてください。

  • ワードで文字列の参照はできないのでしょうか

    たとえば、Aテキストボックスに文字列を入力することにより、Bテキストボックスにも同じ文字列が反映される。みたいなことがしたいのですが、ワードではそのようなことはできないのでしょうか? エクセルの場合、A1セルに入力した文字列を、他のセルにも反映させたい場合は、反映させたいセルに「=A1」と入力すれば、そのセルにもA1に入力した文字列が参照されて反映されますよね。 それと同じようなことをワードでしたいのです。

  • エクセルで他のシートのセル(文字列)を自動的に参照したい

    シートAセルに、シートBのセルを参照する方法を教えて下さい。 シートBのセルに入力した文字列がシートAのセルに自動的に 反映されるようなことを試していますがうまくいきません。。。

  • 文字列検索の参照文字列の指定について

    Excelでセルに任意の文字列をペーストします。そのセルは別のブックにリンクしているのでペーストする度にリンク先のセルでは文字列が更新されます。リンク先のブックにはワークシートが10あっていづれかのシートのA列にその文字列がある事になっています。更新された文字列を検索する作業を繰り返すのでマクロで組み込もうと思ったのですがFIND関数にしても、VBでCell.Find(What:=....と書くにも参照する文字列を直接指定してやらないと動きません。参照する文字列が相対的に変化するので「特定のセルの中に入力された文字列」を参照してブック内を検索したいということなのですが、実現するにはどうしたらようでしょうか?

  • 別シートの文字列があったら現シートのセルの色変える

    こんにちは。 エクセル2010を使用しています。質問させて下さい。 BシートのA列に下記のような文字列があります。 ------以下文字列------- 秋山 清原 デストラーデ 渡辺 ------以上文字列------- この時、AシートのセルにBシートに現れる文字列があった場合に色づけがしたいです。 例えば、Aシートに”清原”というセルがあったら、Bシートを参照して色づけされる。 この様なことをどうすれば実現できますでしょうか? ご教示願います。

  • エクセル ある文字列を入れるとある文字列を返す

    エクセルでの関数、ど素人です。一応自分で調べたのですが、無理なので質問させていただきます。よろしくお願いいたします。 エクセルで、時刻ですが文字列として1745~2345までを手入力します(1745,とか2000とか2330とか。。。。。) 入れた文字列によって、すぐ横のセルに1745、1800、1815であれば8.00、1830からは0.25刻みで8.25、1845であれば8.50、1900であれば8.75。。。。2330であれば13.25、2345であれば13.50と言ったように、入力した文字列に対しある特定の文字列を自動的に入れたいのですが、どのような関数を使えばよろしいのでしょうか。 私が行おうとしたのは、別シートに文字列一覧を作り、if(特定のセル(手入力するセル)=別シートの1745~2345まで、横のセル=別シートの8.00、8.00、8.00~13.50まで)や、sumif、lookupを使ってみましたが撃沈です。 どなたか教えていただきたく、お願いいたします。

  • 文字列を2つに分ける

    10個近くある異なるブックのシートを、新しい1つのブックにまとめてしまおうと考えています。 手動で1つのブック内の複数シートを選択して、新しいブックにコピーしようとしましたが、1つのセルに入力されている文字列の中に、かなり長い(255字以上)ものが含まれており、コピーした際にデータが捨てられてしまいます。 長い文字列を、事前にマクロで探して、2つのセルに分ける (たとえば、A1に長い文章があるなら、A2にセルを挿入して、文字列を2つにわける) ことは可能でしょうか? 分けたあとにそれぞれが255字以下になっていることも確認したいと思っています

  • Excel: 数字(文字列)とアルファベットによって参照するセルを変えたい

    こんにちは。入社予定者のデータを入力するフォームを作成しています。 ■グレードは1~10とA~Cの数字またはアルファベットとなっており、Positionシートにどちらも文字列で入力されています。 ■勤務地は英語・日本語のどちらもPositionシートに入力されています。 ■グレードが数字であれば日本語の勤務地を参照し、グレードがアルファベットであれば英語の勤務地を参照するようにしたいです。 IFの中でグレードのセルをVALUEで数値化して10以下であれば日本語の勤務地をVLOOKUPで参照するようにし、それ以外であれば英語の勤務地を参照するようにすればできるかと思ったのですが、これだとグレードがアルファベットの場合にエラーになってしまいます。 なお、グレードは「5/6」(5または6の意味)のように入力されているものがあるため、文字列化できません。すると「5/6」のように入力されているセルの数値がおかしくなってしまいます。 何か良い方法があればお知恵を貸してください。 どうぞよろしくお願いいたします。

  • EXCEL2003でグラフタイトルをセル参照させる

    こんにちは。タイトルの通りEXCEL2003を使用しています。 グラフタイトルをセル参照(例えばグラフの元データの表のタイトルなど)で表示させたいのですがどのようにすればいいのかわかりません。 テキストボックスを使用してのセルの参照のさせ方は分かるのですがその方法しかないのでしょうか?教えてくださいm(__)m