Page 252 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼グラフについて(散布図) いぬだわん 02/10/21(月) 22:36 ┗Re:グラフについて(散布図) Jaka 02/10/22(火) 10:05 ┗Re:グラフについて(散布図) いぬだわん 02/10/22(火) 12:00 ┗こりもせず再チャレンジ。 Jaka 02/10/23(水) 10:18 ┗違う方を張りつけてしまいました。 Jaka 02/10/23(水) 10:26 ┗Re:驚 いぬだわん 02/10/24(木) 10:24 ┗すみません。作りなおしました。 Jaka 02/10/24(木) 11:26 ─────────────────────────────────────── ■題名 : グラフについて(散布図) ■名前 : いぬだわん ■日付 : 02/10/21(月) 22:36 -------------------------------------------------------------------------
こんばんは。 散布図グラフについての質問です。 ある任意の数値データについての散布図を作ろうとしています。 例としてA1より A B C D 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 とします。 まず、ご存知のとおり、 散布図を作成するには、XおよびY軸の値の範囲を SeriesCollection毎に指定しなくてはいけないのですが、 先にX軸の値の範囲をInputBoxか何かで指定-(1)し、 次にApplication.Dialogs(xlDialogsChartsSourceData)を表示させ、 「系列」タブの「追加」ボタンを押したときに、 X軸の値は(1)とし、Y軸の値を指定していきます。 今のところ考えたのが、 '--- Sub Graph_xlXYScatter() Dim strTitle,strMsg as String Dim myRange as Range strTitle="X軸の値の設定" strMsg="X軸の値を設定してください。" set myRange=Application.InputBox(prompt:=strMsg,Title:=strTitle,Type:=8) Charts.Add Application.Dialogs(xlDialogChartSourceData).Show ActiveChart.SetSourceData Source:=Range(myRange,(?)).CurrentRegion,PlotBy:=xlColumns End Sub '--- ですが、 SetSourceData Sourceのところで、 Application.Dialogs(xlDialogChartSourceData)の 「OK」を押すまでのLoop文を入れてもいいのでしょうか? また、折角InputBoxでX軸の値を指定しても、 Application.Dialogs(xlDialogChartSourceData).Showをしたら、 クリアされてしまいます。 わかる方がいらっしゃれば教えていただければと思います。 |
こんにちは。 グラフは、特に解らないんですけど。 解らないんで、いぬだわんさんのやりたい事とまるっきり外している可能性があります。 しかも、姑息な方法です。 前に考えてみたんだけどやっぱり抵抗があります。 使えないようでしたら捨ててください。 Sub aa() Dim myRange As Range Dim strTitle, strMsg As String Dim ShN As String strTitle = "X軸の値の設定" strMsg = "X軸の値を設定してください。" Set myRange = Application.InputBox(prompt:=strMsg, Title:=strTitle, Type:=8) ShN = "=" & ActiveSheet.Name & "!" Charts.Add ActiveChart.ChartType = xlXYScatter SendKeys ShN & myRange.Address SendKeys "({ENTER})" Application.Dialogs(xlDialogChartSourceData).Show ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1" Worksheets("Sheet1").Select End Sub |
▼Jaka さん: こんにちは。 こんな無理難題に答えて頂きまして 感謝感激です。 まずはお礼まで。 |
こんにちは。 >まず、ご存知のとおり、 >散布図を作成するには、XおよびY軸の値の範囲を >SeriesCollection毎に指定しなくてはいけないのですが、 >先にX軸の値の範囲をInputBoxか何かで指定-(1)し、 >次にApplication.Dialogs(xlDialogsChartsSourceData)を表示させ、 >「系列」タブの「追加」ボタンを押したときに、 >X軸の値は(1)とし、Y軸の値を指定していきます。 全く知りませんでした。 知らない上、全く解りませんから、また外れていると思います。 手作業でもグラフなんてものを、作ったことが無い奴がレスするのもなんですが..。 自分でもおこがましい奴だと思ってます。 手作業での手順を書いてくれると、最終的な物が何となく解って力添えできるかもしれません。 できない方が95%...。 Sub plpl() Dim strTitle, strMsg As String Dim myRange As Variant strTitle = "X軸の値の設定" strMsg = "X軸の値を設定してください。" On Error Resume Next Set myRange = Application.InputBox(prompt:=strMsg, Title:=strTitle, Type:=8) If myRange Is Nothing Then End On Error GoTo 0 Shname = ActiveSheet.Name Application.ScreenUpdating = False 'Worksheets("Sheet1").Range(myRange.Address).CurrentRegion.Select 'ActiveWorkbook.Charts.Add(after:=Worksheets(Worksheets.Count)).Name = "グラフ1" ActiveWorkbook.Charts.Add(after:=ActiveSheet).Name = "グラフ1" Worksheets("Sheet1").Range(myRange.Address).CurrentRegion.Copy Charts("グラフ1").Paste Charts("グラフ1").Activate Application.CutCopyMode = False ActiveChart.ChartType = xlXYScatter 'ActiveChart.Location Where:=xlLocationAsObject, Name:=Shname '↑ このチェックを外すとアクティブシートにグラフができます。 Worksheets("Sheet1").Select Application.ScreenUpdating = True End Sub |
Sub popo() Dim strTitle, strMsg As String Dim myRange As Variant strTitle = "X軸の値の設定" strMsg = "X軸の値を設定してください。" On Error Resume Next Set myRange = Application.InputBox(prompt:=strMsg, Title:=strTitle, Type:=8) If myRange Is Nothing Then End On Error GoTo 0 Shname = ActiveSheet.Name Application.ScreenUpdating = False ActiveWorkbook.Charts.Add(after:=Worksheets(Shname)).Name = "グラフ1" Worksheets(Shname).Range(myRange.Address).CurrentRegion.Copy Charts("グラフ1").Paste Charts("グラフ1").Activate Application.CutCopyMode = False ActiveChart.ChartType = xlXYScatter 'ActiveChart.Location Where:=xlLocationAsObject, Name:=Shname '↑ このチェックを外すとアクティブシートにグラフができます。 Worksheets(Shname).Select Application.ScreenUpdating = True End Sub |
▼Jaka さん: こんにちは。 ホントありがとうございます。 私も、 散布図の作成のマクロを作成しましたが、 仮にA,B,C,Dに数値データがあるとして、 Xの値の範囲をB列に指定すると、 勝手に(笑)A列がX軸の値になってしまうんですよね。 もうちょっと考えてみたいと思います。 いつもいつも 無理難題の質問ばかりさせて頂いております。 マクロで「これは絶対できない」というものってあるんですかねぇ? また似たような質問をするかもしれませんが、 そのときはよろしくお願いいたします。 |
▼いぬだわん さん: >▼Jaka さん: >こんにちは。 > >ホントありがとうございます。 > >私も、 >散布図の作成のマクロを作成しましたが、 >仮にA,B,C,Dに数値データがあるとして、 >Xの値の範囲をB列に指定すると、 >勝手に(笑)A列がX軸の値になってしまうんですよね。 >もうちょっと考えてみたいと思います。 > >いつもいつも >無理難題の質問ばかりさせて頂いております。 >マクロで「これは絶対できない」というものってあるんですかねぇ? > >また似たような質問をするかもしれませんが、 >そのときはよろしくお願いいたします。 これのせる前にレスついちゃったんで..。 Sub mkmk() Dim strTitle, strMsg As String Dim myRange As Variant Dim Shname As String strTitle = "X軸の値の設定" strMsg = "X軸の値を設定してください。" On Error Resume Next Set myRange = Application.InputBox(prompt:=strMsg, Title:=strTitle, Type:=8) If myRange Is Nothing Then End On Error GoTo 0 Shname = ActiveSheet.Name Set myRange = Worksheets(Shname).Range(myRange.Address).CurrentRegion Charts.Add With ActiveChart .ChartType = xlXYScatter .SetSourceData Source:=myRange, PlotBy:=xlRows .Location Where:=xlLocationAsObject, Name:=Shname End With ActiveChart.HasTitle = True ActiveChart.ChartTitle.Characters.Text = "名前××" Set myRange = Nothing End Sub |