• 締切済み

マクロについて(Excel2002)

マクロを使ってグラフ作成をし、それにデータラベルをつける・・・ということをしています。 グラフシートに作成すると、マクロに「Graph1」シートに・・・と記憶され2回目以降にマクロを作成するとシート名が異なるためエラーになります。 こういった場合どうしたらよいのでしょうか?

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

私の乏しい経験からすると (1) ActiveChart.Location Where:=xlLocationAsNewSheet とすると新グラフシートにGraph1、Graph2、3・・とグラフシートが出来る。 (2)ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"とするとデータのあるワークシートに重なって 書かれる。ご質問のケースは(1)のケースでしょう。 ----- (1)グラフシートを手操作で指定しておいてActivechartと いう表現で逃げる。 (2)Addしたときに、Nameプロパティで名前を知りグラフシート名を知り、それを使う。下記例でCharts(n).SeriesCollection(1)・・のところ。 n = Charts.Add.Name MsgBox n Charts(n).ChartType = xlColumnClustered ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:A5"), PlotBy:= _ xlColumns ActiveChart.Location Where:=xlLocationAsNewSheet Charts(n).SeriesCollection(1).ApplyDataLabels Type:= _ xlDataLabelsShowValue, AutoText:=True, LegendKey:=False (3)前に作ったグラフシートが要らないなら Sub test03() ActiveSheet.Delete End Sub で削除して、問題を簡単にする。 (4)別途(注)グラフ名を知り(下記では"グラフ 5"の部分)それを指定して、オブジェクトを掴まえる。 ActiveSheet.ChartObjects("グラフ 5").Activate ActiveChart.ChartArea.Select ActiveWindow.Visible = False Selection.Delete (注)グラフエリア上で右クリックし、「グラフウインドウ」 をクリックすると、タイトルに出てくる。 (2)以外は、どれも一部手操作」が入るので、(2)辺りが 使えないか、考えて見てください。ヒントになれば幸いです。 要は私は一番難しいと思う、「オブジェクトの特定ないし表現方法」の問題で、(1)名前による(2)Itemによる(3)Active何々やSelected何々による(4)その他のどれかを使わねばならないと思います。

kunikunichan
質問者

お礼

かなり難しいのですね。。。 でも何とかチャレンジしてみますね。 どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel2000マクロ

    お世話になっております。 マクロのことで教えてください(マクロ初心者です(^_^;)) A列・・日付 B列・・時刻 C列・・数値データ “時刻”が2秒おきのデータなので1分おきのデータを抽出したいので、D列にSECOND関数を使って秒だけを抜き出し、 オートフィルタで“0”だけを抽出し、これで1分おきのデータを抽出し、 B列がX軸でC列がY軸のグラフを作ります。 これをマクロで記録して自動的にやりたかったのです。 ですが、 「D列にSECOND関数を使って秒だけを抜き出し、 オートフィルタで“0”だけを抽出し、これで1分おきのデータを抽出し、・・」 のところは、うまくマクロで自動化できるのですが、 別シートに出来たグラフを見ると、一番最初に記録して作ったグラフがそのまんまできてしまいます。 次のデータでグラフをつくりたかったのですが。。 これはどうしてでしょう? グラフまではうまくできないのでしょうか?

  • マクロを作成するマクロを作成するには(Excel)

    すでにあるシートを見やすいように加工するマクロ(マクロ1とします)(並び替えたり、項目名の変更など)を作成し、それをマクロブックにして汎用運用しています。それで出来上がったシートに特定のセルをダブルクリックすれば、そのセルに今日の日付がセットされるマクロ(マクロ2とします)をその都度手書きで作成して実行しているのですが、そもそも前記のマクロ1の中にマクロ2を作成するマクロを記述したいのです。またマクロ2は特定シートにのみ有効となるように当該シートにはりつけています。作成方法をどなたかご教授よろしくお願いします。

  • MS Excel2003のマクロについて

    現在、エクセル2003のマクロを作成しています。 そこで、どうしても作成できないことが2点あります。 シート数は、60シート前後を予定しています シート名は、バラバラです。 1.アクティブシート(マクロのボタンがあるシート)以外の全シートの "C6:D36" をクリアしたい。  苦戦して作成すると、アクティブシートの"C6:D36"がクリアされ  使い物になりませんでした。 2.アクティブシート(マクロのボタンがあるシート)以外の全シートを印刷プレビューしたい。  どうしても、アクティブシートも含まれて印刷プレビューされてしまいました。 例題をあげて、回答いただきたいです。 よろしくお願いいたします。 

  • 【Excel】マクロ名の違い?

    Excel2003を使用しています。 AというブックのSheet5とSheet6にマクロを作っています。 (シート名の上で右クリック→コードの表示で表示された画面にコードを書きました) マクロの内容は、どちらもある範囲(連続していない)のデータをクリアするというものです。 「Ctrl」キーを押しながら該当セルを選択してクリアしていたのですが、毎回面倒なのでマクロボタンで処理することにしました。 (Sheet5とSheet6は、クリアするデータの範囲が違います) ボタンにマクロを登録して、実際に使ってみたところ、Sheet5の方は問題なく処理されたのですが、Sheet6の方がマクロが見つからないという内容のダイアログが出てきて、処理できませんでした。 「Alt」+「F8」でマクロ名を見てみると、Sheet5のマクロ名は『Sheet5.マクロ名』となっているのですが、Sheet6のマクロ名は『'A'!マクロ名』となっていました。 このことがSheet6のマクロが処理されないことと何か関係があるのでしょうか?また、Sheet6の方もきちんと処理されるようにするためには、どうしたらいいのでしょうか? よろしくお願いします。

  • excel2007でグラフの書式設定をするマクロ

    excel2003で作成したマクロで、excel2003上では動作するのですが、excel2007ではエラーになります。 調べた限りでは、excel2007でVBAの仕様が変わったということも無いようですが、新しくexcel2007でマクロを記録してみてもエラーになり、困っています。 マクロの内容は、グラフの系列にラベルの書式設定をするというものです。 エラー内容「'HasDataLabels' メソッドは失敗しました: 'Series'オブジェクト」 ---------------------------- Sub LabelSet() Dim col_srs As SeriesCollection Dim obj_srs As Series          Sheets("Sheet1").ChartObjects(1).Activate     Set col_srs = ActiveChart.SeriesCollection     'データ系列ごとに個々の系列名を表示     For Each obj_srs In col_srs       With obj_srs         .HasDataLabels = True         .DataLabels.ShowSeriesName = True         .DataLabels.ShowValue = True         .DataLabels.Separator = Chr(10)       End With     Next End Sub ----------------------------

  • エクセル2007 マクロについて教えてください

    エクセルのデータが2個あります。 それぞれ、ファイル名は 顧客データ.xlsと個別シート.xlsです。 顧客データ.xlsには、10名のお客様の情報があり、A1セルには ID番号 と入力してあり、 A2~A11セルにID番号が入力されています。 『個別シート.xlsにマクロで顧客データ.xlsのデータをコピーし、ID番号のフォルダをデスクトップに新規作成し、ID番号を付けて保存する』マクロを作成中です。 顧客番号が1234のお客様のデータを、個別シートにコピーし、デスクトップに1234というフォルダを新規作成し、その中に 個別シート_1234.xls というファイル名で保存をしたいです。 顧客データを自動でコピーするまではできましたが、それ以降ができません。 MkDir "C:\ Documents and Settings\xxx\デスクトップ\nknk\ID " ChDir "C:\ Documents and Settings\xxxi\デスクトップ\nknk\ID " ActiveWorkbook.SaveAs Filename:="個別シート_" & ID & ".xls" ActiveWorkbook.Close マクロを実行すると『実行時エラー76:パスが見つかりません』とエラーになります。 (フォルダ作成の命令文のところが黄色くなります。) ちなみに、個別シートの指定したセルに、IDはコピーされています。 正しく実行できる文を教えてください。また、以降の命令文は正しいでしょうか。 よろしくお願いします。  

  • 【Excel365】マクロを削除するマクロ

    特定のシート(仮にAとします)に添付画像のマクロ(別のマクロを実行するマクロ)を組み込んであります。 シートAをコピーしてシートBを作成し、値コピー・行削除などいろいろ編集した後にxlsxとして保存するという作業をしています。 しかし、シートBにも画像のマクロが組み込まれたままなので、1行目を削除するとマクロ「更新」が実行されてしまいます。 シートをコピーした後、画像のマクロを削除する方法はありませんか? 各Q&Aサイトをググるといろいろ出てきますが、理解できませんでした。 もしくは、シートAとそっくりなシート(ページレイアウトや書式もそのままでデータのみ値コピー)を作成するマクロの提示でも構いません。

  • excel マクロ記録→実行でグラフ作成に失敗

    次の手順でグラフ作成を試みますが、失敗します。 1.データ範囲を選択した後「マクロの記録」ボタンを押す。 2.ツールバーからグラフウィザードを起動してグラフを作成。 3.サイズやフォントの編集を行って記録を終了。 4.マクロを実行 エラーとして、例えば次の行が指摘されます。 ActiveSheet.Shapes("グラフ 4").IncrementLeft -143.25 この行は"グラフ 4"を対象とした編集を行っていると思うのですが、マクロ実行で新たにグラフを作ると、グラフ名中の数字がインクリメントされて"グラフ n"(n>=5)以降が作られますよね? そのためにエラーが出ると思うのですが、"グラフ 4"では無く上手い具合にグラフ名を指定する方法はありますか? 他にも問題点があるかも知れませんが現状ではこれしか思いつきません。 思い当たる方、ご指摘いただけますでしょうか。 (単純にグラフを作る作業は「マクロ記録→実行」によって可能であることは確認しました。) また、excelでのグラフ作りに有用な書籍やサイトがあれば、教えていただけませんでしょうか。 よろしくお願いします。

  • Excel2010の折れ線グラフについて。

    Excel2010です。 ある工場の新人の生産性データをグラフ化しています。 1シートに名前、トレーニングを行った日、毎日(1か月分)の生産性、が入ったデータが150名分あります。 ↓こんな感じです。 名前   トレーニング日   8/1   8/2     8/3 Aさん    8/2     100     100     120 別シートで、プルダウンから1名のみを選択し、1シートからVlookupで参照したデーをもとに 折れ線グラフを作っています。 その折れ線グラフで、トレーニングを受けた日以降の線を点線にしたいのですが そういったことはできますか? 人によってトレーニング日が変わるため、どのようにすればいいのかわからず困っております。 セキュリティの関係でマクロは使用できません。 よろしくお願いします。

  • マクロでピポットテーブル うまくいかない

    エクセル2007で、ある社内基幹データからとってきたデータを、エクセルシート(sheet1)に貼り付けて、その表からマクロでピボットテーブルを作成し(sheet2か)、簡単な担当者と仕事場所のリスト表を作るといったものを作成しました。 とりあえず、うまく動くのですが、 時々うまくいきません。別のPCでやった場合など。 うまくいかないケースの、原因がよく分かりません。 以下のようなエラーがでまして、黄色の部分が下のものになります 実行時のエラー1004 そのピボットテーブルのフィールド名は正しくありません。ピボットテーブルレポートを作成するには、ラベルの付いた列でリストとして編成されたデータを使用する必要があります。ピポットテーブルのフィールド名を変更する場合は、フィールドの新しい名前を入力する必要があります。 (以下、問題があるとしてデバッグが求められる部分) ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Sheet1!R1C1:R71C23", Version:=xlPivotTableVersion12).CreatePivotTable _ TableDestination:="Sheet2!R1C1", TableName:="ピボットテーブル2", DefaultVersion _ :=xlPivotTableVersion12 まだ初心者で、上記よく分かりませんので、何が問題なのか、ヒントなどいただけるとありがたいです。

インク交換後の残量について
このQ&Aのポイント
  • 昨日LC3117Mマゼンタのインクを交換したところ、残量が変わらない。ただ、インクを抜くとインクを入れてくださいと表示されるので、認識していないということではないと思う
  • お使いの環境はWindows10で、接続は有線LANです。電話回線の種類はひかり回線です。
  • ブラザー製品についての質問です。インクを交換したが残量が変わらず、インクを抜くとインクを入れてくださいと表示される。Windows10で有線LAN接続、電話回線はひかり回線を使用しています。
回答を見る

専門家に質問してみよう