EXCEL97でオブジェクトとしてグラフを作成しています。
グラフのタイトルにシート名を参照させる方法はありますでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

アクティブシートにグラフが1つしかない例です。


こういう意味の質問でした? (『ActiveSheet.Name』の箇所に他の文字も結合できます。)
ご参考に。

Sub setChartTitle()
  With ActiveSheet.ChartObjects(1).Chart
    .HasTitle = True
    .ChartTitle.Text = ActiveSheet.Name
  End With
End Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
マクロを使うと簡単にできるんですね。参考になりました。

お礼日時:2001/12/18 17:07

こんにちは



 以下の手順でいかがでしょうか?

1.ワークシート上のどこかのセル、例えばセルG1に以下の数式を入力
=MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31)
2.グラフタイトルをクリック
3.数式バーをクリックして = を入力
4.そのまま セルG1 をクリック
→数式バーに =Sheet1!G1 のように表示されます。
5.Enter

 グラフタイトルをクリックしてそのままセル参照を入力するのではなく、数式バー上で入力することで、セルとの間にリンクを設定することができます。

 以下のページもご参考になるのでは?

【エクセル技道場】-シート-ワークシート名を表示する関数
http://www2.odn.ne.jp/excel/waza/sheet.html#SEC5

参考URL:http://www2.odn.ne.jp/excel/waza/sheet.html#SEC5
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
ワークシート名を表示する関数がある事を知り参考になりました。
ワーク用のセルを作っておけばいいんですね。

お礼日時:2001/12/18 17:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcel2000マクロ_全てのシートに対して埋込グラフのタイトルをシート名にする

何方か、回答をお願いします。
下記のマクロは全てのシートに対して埋込グラフのタイトルをシート名にする物ですが
ChartObjectsメソッドは失敗しましたと出るときが有ります。
On Error GoTo が効いてErrHandlerに行くときも有るのでよく分かりません。
有識者の方々のもっと良いコードを教えて下さい。
(1つのシートに対してグラフは0~3個です。)

Sub シート名グラフ名()

Dim mysheet As Worksheet
For Each mysheet In Worksheets

On Error GoTo ErrHandler

With mysheet.ChartObjects(1).Chart
.ChartTitle.Text = mysheet.Name
End With

With mysheet.ChartObjects(2).Chart
.ChartTitle.Text = mysheet.Name
End With

With mysheet.ChartObjects(3).Chart
.ChartTitle.Text = mysheet.Name
End With
ErrHandler:
Next mysheet
End Sub

何方か、回答をお願いします。
下記のマクロは全てのシートに対して埋込グラフのタイトルをシート名にする物ですが
ChartObjectsメソッドは失敗しましたと出るときが有ります。
On Error GoTo が効いてErrHandlerに行くときも有るのでよく分かりません。
有識者の方々のもっと良いコードを教えて下さい。
(1つのシートに対してグラフは0~3個です。)

Sub シート名グラフ名()

Dim mysheet As Worksheet
For Each mysheet In Worksheets

On Error GoTo ErrHandler

With mysheet.ChartOb...続きを読む

Aベストアンサー

こんばんは。

ためしに、元のコードに付け足してみました。
不必要なものは、削除してしまってください。

Sub グラフ名前調査() 'グラフをアクティブにしておく
Dim strName As String
Dim ChartName As String
Dim myChart As Object
Dim i As Integer
Dim t As String
strName = StrConv(TypeName(Selection), vbUpperCase)
If strName = "CHARTAREA" Or _
  strName = "GRIDLINES" Or _
  strName = "PLOTAREA" Then
  ChartName = ActiveChart.Name '名前
  i = ActiveChart.Parent.Index 'インデックス
  t = ActiveChart.ChartTitle.Caption 'タイトル
 
  MsgBox "名前:" & ChartName & vbCrLf & _
     "インデックス: " & CStr(i) & vbCrLf & _
     "タイトル:" & t
End If
End Sub

こんばんは。

ためしに、元のコードに付け足してみました。
不必要なものは、削除してしまってください。

Sub グラフ名前調査() 'グラフをアクティブにしておく
Dim strName As String
Dim ChartName As String
Dim myChart As Object
Dim i As Integer
Dim t As String
strName = StrConv(TypeName(Selection), vbUpperCase)
If strName = "CHARTAREA" Or _
  strName = "GRIDLINES" Or _
  strName = "PLOTAREA" Then
  ChartName = ActiveChart.Name '名前
  i = ActiveChart.Parent.Ind...続きを読む

Q会社のExcel97で作成したファイルが自宅のExcel97で開けません(悲)

友人の事なんですが皆様よろしくお願いします。長い説明です、すみません。

友人が会社で作成したExcel97のファイルが自宅のパソコンのExcel97で開けなくてエラーが出るのです。そのエラーとは、

「○(の中に×)プリンタが組み込まれていません。コントロールパネルの[設定]-[プリンタ]コマンドでプリンタを読み込んでください。」

と出るのです。取り合えずキャンセルをクリックするのですが、次のようなエラーが又出てしまって困っています。

「コントロールパネルを確認して下さい。既定値のプリンタでエラーが発生した為、印刷できませんでした。原因として幾つかの理由が考えられます。……」

と長い文章のメッセージが出てしまいます。
友人はプリンタを持っておりませんし、マイクロソフトのWebサイトでも必要とする「構成」の説明のところには「プリンタ」が必須とは書いて有りませんでしたし…。
友人としては、自宅で書き込んで会社で印刷するのだそうです。

ただ友人が言いますのには、会社ではLanか何かでプリンタは繋がっているのだそうです。
あと会社での文書(ファイル)作成時には印刷する大きさの青い(ブルー)の枠の中に打ち込んで(書き込んで?)いるのだそうです。

会社のマシンにはWindowsMeが入っているそうで、友人のマシンにはWindows98SEが入っています。
そうそう友人は、Office97からインストゥールしたって言っていました。

友人のマシンは、Athlon1.0GHz,DIMM512MB,GeForce2MX 32MB,Onbord sound,Modem56k(PCI)がおおよその構成です。私が一年前ほどからWin機を使っていたので、つい最近友人を手伝って自作・組み立てた物です。

友人は、仕事の為にMacから乗り換えたので「Win機は解り難い」って言っていましてExcel(Office)97も初めて、私も自作をほんの少し知っている程度で、勿論Excel&Officeも初めて友人宅で触りました。

友人の事なんですが皆様よろしくお願いします。長い説明です、すみません。

友人が会社で作成したExcel97のファイルが自宅のパソコンのExcel97で開けなくてエラーが出るのです。そのエラーとは、

「○(の中に×)プリンタが組み込まれていません。コントロールパネルの[設定]-[プリンタ]コマンドでプリンタを読み込んでください。」

と出るのです。取り合えずキャンセルをクリックするのですが、次のようなエラーが又出てしまって困っています。

「コントロールパネルを確認して下さい。既定値のプリンタ...続きを読む

Aベストアンサー

プリンタを使用しなくても、プリンタは設定しておいたほうがいいですよ。

スタートメニュー/設定/プリンタで一覧表示してプリンタが1つも無い状態だと「印刷プレビュー」等の機能が使用できません。
そこで、プリンタを使わない場合、なんでもいいから適当にプリンタを設定しておきます。

<設定方法>
スタートメニュー/設定/プリンタでプリンタの追加をダブルクリックし、あとは指示にしたがって進めていきます。
プリンタはCanon LBP-740等を適当に選択しておきます。
最後にテスト印刷をするか聞いてくるので「いいえ」を選択します。

QExcelでグラフを作成する際、新しいのシートで作成すると一面グレーに

Excelでグラフを作成する際、新しいのシートで作成すると一面グレーになってしまいます。
オブジェクトとしては作成できます。
グラフツールバーよりグラフエリア等を選択すると選択されますので、作成はされているようです。
どうすれば、作成されたグラフを表示できるのでしょうか。

Aベストアンサー

急になったのですか?

試験の練習の為なら、取り敢えず、オブジェクトでも、操作は同じなので。

グラフだけを選択して、印刷プレビューにすると、専用シートと同じように
表示されます。印刷もグラフのみできます。

あと、やれる事は、「ヘルプ」の「アプリケーションの自動修復」です。

Office全体を修復するので、ユーザー設定したものが初期状態に戻るかも
しれませんが。

あとは、マクロが入っているとか、セルを非表示の設定にしているとか、シートや
ブックに保護がかかっている、などが考えられますが。

今の所、これ位しか考えられませんが。

QExcelで、数値データとして参照したいのに、文字列データとしてしか参照してくれません

Excelで、ある数式セルに表示されたデータを、数値データとして参照したいのですが、どうやっても文字列データとしてしか認識してくれません。

具体的に書くと、
例えばセルA1に、FIND関数で他のセルから抜き出した半角数字のみのデータを表示しているとします。

そのA1の数値を、今度はセルA2で、
if(A1=1000,A1*2,A1/2)
などと数式で参照したい時に、私のExcel(2002です)では、どうやってもA1=1000という条件式をきちんと判別してくれません。どうやら、FIND関数で抜き出したために文字列データとして扱われてしまっているようです。
その証拠に、A1が実際に「1000」の時に
if(A1="1000",A1*2,A1/2)
という風に1000をダブルクォーテーションで囲んで式を書くと、きちんとA1*2を実行してくれます(つまり、A1が実際に1000の時でも条件式の1000をダブルクォーテーションで囲まないと、きちんと判別してくれないという事です)。

この状態から抜け出せずに、どうにも困っています。
どうにかA1の「1000」というデータを文字列でなく数値データとして条件式で利用できるように出来ないものでしょうか。

乱文ですみませんが、よろしくお願いいたします。

Excelで、ある数式セルに表示されたデータを、数値データとして参照したいのですが、どうやっても文字列データとしてしか認識してくれません。

具体的に書くと、
例えばセルA1に、FIND関数で他のセルから抜き出した半角数字のみのデータを表示しているとします。

そのA1の数値を、今度はセルA2で、
if(A1=1000,A1*2,A1/2)
などと数式で参照したい時に、私のExcel(2002です)では、どうやってもA1=1000という条件式をきちんと判別してくれません。どうやら、FIND関数で抜き出したために文字列データとし...続きを読む

Aベストアンサー

数字だけの文字列を数値にするにはValue()を使います。

QEXCELマクロでシート作成&シート名をつける方法

EXCELでセルK列に入力した名称でシートをどんどん作成したいのですが、
下記のようにやってみましたが、うまく実行されません。
2回目の←の部分で、終わってしまいます。
詳しい方、教えてください。

Sub Macro3()

Dim neSheet As String
Dim fMax As Integer
Dim num As Integer
Dim i As Integer

fMax = Range("B2").Value
num = 2

For i = 1 To fMax

neSheet = Range("k" & num).Value
Worksheets.Add(After:=Worksheets(1)).Name = neSheet ←
num = num + 1

Next i
End Sub

Aベストアンサー

ワークシートを追加すると、アクティブシートが
変わってしまいます。
neSheet = Range("k" & num).Value
↑こういう記述をワークシートオブジェクトからきちんと
記述してください。


Sub Macro3()
  Dim neSheet As String
  Dim fMax As Integer
  Dim i As Integer
  Dim sht As Worksheet
  Set sht = Worksheets(1)
  fMax = sht.Range("B2").Value
  For i = 1 To fMax
    neSheet = sht.Range("k" & (i + 1)).Value
    Worksheets.Add(After:=Worksheets(1)).Name = neSheet
    Next i
End Sub
↑このコードは、作成するシート情報
(セルB2作成シート数とK列のシート名)は最右端シートに
設定されいるものとします。

ワークシートを追加すると、アクティブシートが
変わってしまいます。
neSheet = Range("k" & num).Value
↑こういう記述をワークシートオブジェクトからきちんと
記述してください。


Sub Macro3()
  Dim neSheet As String
  Dim fMax As Integer
  Dim i As Integer
  Dim sht As Worksheet
  Set sht = Worksheets(1)
  fMax = sht.Range("B2").Value
  For i = 1 To fMax
    neSheet = sht.Range("k" & (i + 1)).Value
    Worksheets.Add(After:=Worksheets(1)).Nam...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報