• 締切済み

ファイルメーカー(xmchart)について教えてください

こんにちは。ファイルメーカーPro8.5を使用しています。xmchartを使って、レーダーチャートを作りました。流れとしてはまず「gData」フィールドを作り、次に、「souce」フィールドを作りました。その「souce」フィールドに以下のテキストを入力しました。 OpenDrawing(400;300) OpenChart(30;90;150;230;on) ChartData(<gData>) RadarChart(label) RadarChartOptions(0;poly;on) // after RadarChart()! // set up styles FillStyle(1;204 255 0) BorderStyle(1;poly;2;150 150 0) ArrowStyle(1;1;100 100 0;;;12;8) LabelStyle(1;"Osaka";10) LabelBackground(1;lightYellow) // set up axes AxisLabelText(1;"A";"B";"C";"D";"E") AxisLabelStyle(all;"Osaka";10;bold) CloseChart()  3行目のChartDataの(<gData>)に「gData」フィールドの値が入力されるようにスクリプトを組み、その後xmchartを使ってでグラフ化するところまで出来ました。  そこで教えていただきたいのですが、ChartDataの(<gData>)が例えば(21 22 26 15 13 )という値がでてグラフ化されたとします。しかし、その値は間違いでやり直そうとしたとき、ボタン一つで(21 22 26 15 13 )→(<gData>)に戻したいのですが、どのようなスクリプトを組めばよいでしょうか?初心者なもので悪戦苦闘しています。ぜひともご教授ください。

みんなの回答

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.1

解決したみたいですね。

関連するQ&A

  • ファイルメーカー・スクリプトの作成法を教えて下さい。

     ニュース・ダイジェストを編集する操作を一括処理するため、以下のような手順でファイルメーカーのスクリプト作成を試みましたが、うまく行きません。 1)スクリプト・メニューで『ScriptMaker(S)』を選択。 2)『作成』を指定。 3)『スクリプト名』を『ダイジェスト』と記入。 4)検索実行[記憶する]。  (レコード番号フィールドで特殊文字『*』を検索し、全カードを選択) 5)レコードのソート[記憶する]。  (国地域/日付/フィールド番号の順にソート、何れも昇順。) 6)『フィールド内容のエクスポート』で『日付』を指定。 7)再度『フィールド内容のエクスポート』で『見出し』を指定。 8)さらに『フィールド内容のエクスポート』で『前書き』を指定。 9)『スクリプトを完全アクセス権で実行』をクリックし、『OK』。 10)『スクリプトに表示させる』をクリックし、『実行』。 11)ソート画面がポップアップするため、『OK』をクリック。  以上のスクリプトにより『ダイジェスト.tab』と言うファイルが作成されましたが、ワードで中身を見ると、15本の記事中の最初の1本の『前書き』のみでした。  しかし手動で以上の操作を行うと、15本の記事の『日付』/『見出し』/『前書き』を含んだ『ダイジェスト.tab』が作成されます。  スクリプトの作成手順の誤りを教えて下さい。また、手動で 『フィールド内容のエクスポート』を実行する際には『出力ファイルの文字セット』を『日本語(Shift-JIS)』に設定しますが、この設定をスクリプトに組み込む方法も教えていただければ幸いです。よろしくお願いします。

  • 任意にデータの範囲を選択し、グラフを描画したい

    質問を閲覧していただきありがとうございます。 できればみなさんのお力を貸していただきたいことがあり、質問しました。 以下にマクロ作成に用いたプログラムの仕様とコードを貼りますので、ご指摘等いただけましたら幸いです。 まず、今回のマクロの目的は ・既に存在するエクセルデータから、x軸、y軸のデータ列の長さに応じたグラフを描画するVBプログラムを書く事 です。 ・可能ならば、既存のふたつのグラフを結合したものを新しく表示する ※データシートの画像は添付しましたのでご覧ください。 以上のふたつとなります。 理想形としては、 A2 ~ A1025までをx軸のデータ、B2~B1025までの実データ値としたグラフAを一つ D2 ~ E1025までをx軸のデータ、E2~E1025までの実データ値としたグラフBを一つ 上記二つのグラフを結合したグラフを一つ の3つのグラフが自動的に作成され、エクセルファイル上に表示されている といったような感じです。 私の書いたコードの問題点としては、 ・グラフAグラフBともに「x軸と実データが正しく対応していない」 →本来両方のグラフにおいてはグラフの右端まで折れ線グラフが続いているはずですが、x軸の値にして約1000の所でデータが終わってしまっています。 ・グラフBでは、D2 ~ D344, E2 ~ E344 を基にしたグラフ一つのみが描画されているはずですが、ここには何故か二つ以上の折れ線グラフがあるようにみえ、グラフB右には系列1~5までがあるように書かれています。(理想としては5個ではなく実データを示すもの一つのみ) ・ふたつのグラフの結合方法が不明 という感じです。 以下にプログラムを貼ります。 お時間ありましたら、ご指摘の程宜しくお願い致します。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sub グラフ描画() chart_title1 = "グラフA" chart_title2 = "グラフB" '軸のタイトル x_title = "周波数[Hz]" y_title = "パワー" ' -------------------------グラフ作成---------------------- ' グラフを描画 Dim chartObj1 As ChartObject Set chartObj1 = ActiveSheet.ChartObjects.Add(1, 1, 300, 200) With chartObj1.Chart ' データ範囲をセット .SetSourceData Source:=Range(Range("B2"), _ Cells(2, 1).End(xlDown)) ' x軸の項目軸範囲をセット .SeriesCollection(1).XValues = Range(Range("A2"), _ Cells(1, 1).End(xlDown)) ' オプションをセット .ChartType = xlXYScatterSmoothNoMarkers ' 散布図 .HasTitle = True .ChartTitle.Characters.Text = chart_title .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = x_title .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = y_title ' x軸の最大値、最小値設定 .Axes(xlCategory, xlPrimary).MinimumScale = 0 .Axes(xlCategory, xlPrimary).MaximumScale = 4500 ' y軸の最大値、最小値設定 .Axes(xlValue).MinimumScale = -10 .Axes(xlValue).MaximumScale = 3 End With Dim chartObj2 As ChartObject Set chartObj2 = ActiveSheet.ChartObjects.Add(1, 320, 300, 200) With chartObj2.Chart ' データ範囲をセット .SetSourceData Source:=Range(Range("E2"), _ Cells(2, 1).End(xlDown)) ' x軸の項目軸範囲をセット .SeriesCollection(1).XValues = Range(Range("D2"), _ Cells(1, 1).End(xlDown)) ' オプションをセット .ChartType = xlXYScatterSmoothNoMarkers ' 散布図 .HasTitle = True .ChartTitle.Characters.Text = chart_title .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = x_title .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = y_title ' x軸の最大値、最小値設定 .Axes(xlCategory, xlPrimary).MinimumScale = 0 .Axes(xlCategory, xlPrimary).MaximumScale = 4500 ' y軸の最大値、最小値設定 .Axes(xlValue).MinimumScale = -10 .Axes(xlValue).MaximumScale = 3 End With End Sub ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  • ファイルメーカー8 参照元変更後の参照先自動変更

    最近ファイルメーカーを使い始めました。 インターネットではあまり情報が見つからず、 「現場の必須テクニック」と「THE MISSING MANUAL」を読みながら 勉強しています。 参照させるには、ルックアップの設定、 参照元の値により、参照先の値を選ばせるにはスクリプト、 など、少しずつ理解しました。 ここまで来て、どうしても解らないことがあります。 フィールドの値につきまして、 エクセルのVLOOKUP()みたいに、参照元を変更したと同時に、 参照先を変更させるには、どのように設定したらよいでしょうか? 今まで勉強した知識では、参照先のリレーションのキーフィールドを、 レコードメニューから再ルックアップする、ということしか解りません。 参照元に変更があった場合、いちいち再ルックアップするのが面倒です。 再ルックアップするのを忘れてしまう可能性もあります。 また、この場合、参照先を変更したい値と、 変更したくない値が混在していた場合、全部変更されてしまいます。 リアルタイムで、参照先にも参照元の変更を反映させるやり方は無いのでしょうか?

  • Excel VBA グラフオブジェクトの使用方法について

    Excel2003のVBAについて教えて下さい。 以下の(1)~(4)のコードを用いて セル"A1"に設定された値をグラフスケール(最大値)に設定しようとしています。 (1) scaleData = Worksheets("シート1").Range("A1").Value (2) Set chartObj = ActiveSheet.ChartObjects(1) (3) Set chart1 = chartObj.Chart (4) chart1.Axes(xlValue).MaximumScale = scaleData グラフオブジェクト単体(グループ化しない)時は問題なく、グラフスケールの設定が行えたのですが、グラフオブジェクトやラベル、ボタンなどを結合すると、(3)で、以下のエラーメッセージが出て、グラフスケールの設定が行えません。 「WorksheetクラスのChartObjectsプロパティを取得できません。」 グループ化することにより、グラフオブジェクトの指定方法が異なるのでしょうか? 解決方法をご存知の方、教えて下さい。宜しくお願い致します。

  • 下記内容のスクリプトを実行すると、ポップアップが

    下記内容のスクリプトを実行すると、ポップアップが 5回表示されるのですが、どこから取ってきた値なのか知りたいです。 ※必要なのは4回目に表示されるデスクトッププロパティから  参照できる”スクリーンセーバーの待ち時間”だけです。  出来れば、それのみ表示させたいです。 ****************** On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_Desktop") For Each objItem in colItems Wscript.Echo "ScreenSaverTimeout: " & objItem.ScreenSaverTimeout Next ****************** 以上

  • Dominoデザイナーにて、四捨五入で困っています

    Lotus Notes 6.5のデザイナーを利用する初心者です。 行き詰まっているので、皆様の知恵をお貸しください。 現在、 1.ポップアップで数値を入力するためだけのフォーム:aを作成 2.フォーム:bにボタンを作成し、クリックするとフォーム:aポップアップ表示 3.フォーム:aにあるフィールド:xに数値を入力し[OK]をクリックすると、 フォーム:bにあるフィールド:yに入力された値が代入される というところまでのは作成できたのですが、フォーム:aで[OK]ボタンを押した際に小数点が混 じっている数値(例:1.2、3.7)が入力されていたら、"全て切り上げ"もしくは"四捨五入"した値 をフォーム:Bのフィールド:yに代入させたいのです。 上記の処理の場合、どのようなスクリプトを作成すれば宜しいのでしょうか? ヒントを御願い致します。

  • ACCESS VBA レコードセットの参照方法について

    ACCESS2000でシステムを作っています。 ADOを使って、SELECT句に"*" を使用した内部結合でデータを 抽出したときの結果の参照方法がわかりません。 SQL="SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id" rsはレコードセット,ACはアクティブコネクションとして rs.Open SQL, AC, adOpenKeyset, adLockOptimistic にて結果を取得し、変数aにtable1のフィールド名の値を代入 しようとしています。 a = rs!table1.フィールド名 では「コンパイルエラー メソッドまたはデータメンバが 見つかりません」となり、値の参照ができません。 "*" でなく、フィールド名を明示して それぞれのフィールドに "as 別名"をつければ 参照できますが、フィールドが多いので "*"を使用したいのです。 大変初歩的な質問かと思いますが、どうかよろしくお願いします。m(_ _)m

  • SQL詳しい方、助けてください。

    こんにちは。 UPDATE テーブルA SET フィールドA1 = '1' WHERE フィールドA2 =(SELECT フィールドB1 FROM テーブルB WHERE フィールドB2 = 'C0' OR フィールドB2 = 'C2' AND フィールドB3='') AND フィールドA3 = '' AND フィールドA4 <> '' というSQLを作成して、動作していたので安心していたら、 テーブルBのレコード数は1件のみだと思っていたら、複数存在する場合があるとのことで、 テーブルBのレコードを追加してみたところ、、 【サブクエリは複数の値を返しました。サブクエリが = 、!= 、<、<= 、>、>= のあとに続く場合や、 サブクエリが 1 つの式として使われる場合に複数の値は許可されません。】 というエラーで終了するようになってしまいました。 そこで、 UPDATE テーブルA AS A INNER JOIN テーブルB AS B ON A.フィールドA2 = B.フィールドB1 SET A.フィールドA1 ='1' WHERE B.フィールドB2 = 'C0' OR B.フィールドB2 = 'C2' AND B.フィールドB3='' AND A.フィールドA3='' AND A.フィールドA4 <> '' としてみました。 なんだか混乱してきて、結合条件があっているかが 自分でもよくわかんなくなっていますが。 しかも、 上記のSQLをSQL SERVER 2000のクエリアナライザで 実行すると、 【キーワード 'inner' 付近に正しくない構文があります。】 というエラーが・・・。 INNER 以下はいろいろおかしいんだろうな・・・と 思っていたのですが、まさか、そんなしょっぱなで引っかかるとは思いませんでした。 いろいろ、記述方法を変更してみたり、考えたんり したんですけど、情けないことにさっぱり解りません。 どなたかお力をお貸しください。 お願いします。

  • Access :ALTER TABLE で作成した文字列フィールドがトリミングされない

    いつもお世話になっております。 Access2000を使用しております。 Accessで作成した、あるシステムのバージョンアップを行っております。 その際、複数のテーブルにフィールドを追加する移行プログラムを作成しております。 Dim DB As DAO.Database Set DB = OpenDatabase("外部DB.MDB") DB.Execute ("ALTER TABLE 既存テーブル ADD 追加フィールド CHAR(255)") DB.Close 'データベースを閉じる Set DB = Nothing 上記のようなプログラムを走らせたのですが、 作成された追加フィールドにデータを入力すると、 入力した値の後に指定サイズ分の空白文字ができてしまいます。 つまり、10文字入力した場合 255-10=245文字が空白として登録されてしまいます。 Unicode圧縮プロパティのせいかな、と思い、 Dim TBL As DAO.TableDef Dim FLD As DAO.Field Dim prUC As DAO.Property Set TBL = DB.TableDefs("既存テーブル") Set FLD = TBL.Fields("追加フィールド") Set prUC = FLD.Properties("UnicodeCompression") prUC.Value = True と、フィールド追加後にプロパティを変更してみたりもしたのですが、 やはり、空白が出てしまいます。 作成したフィールドの空白文字がセットされないようにするにはどのようなことを行えばよいのでしょうか。 ご教授のほど、宜しくお願い致します。

  • Automatorでファイルの移動とコピー

    Automatorのフォルダアクションを使ってファイルを2ヶ所のフォルダにコピーしたいのですが、うまくいきません。 フォルダAに保存されたPDFをフォルダBの日付フォルダ(フォルダ名:yy-mm-dd)に移動して、次にフォルダCにコピーをすることが目的です。 ネットの情報を参考にしながら下記のようなワークフローを作成しました。 AutomatorのフォルダアクションでフォルダAを指定 1. 指定されたFinder項目を取得(Automatorでのテスト用に設定) 2. フォルダの内容を取得 3. 変数の値を取得   変数名:folderA 4. AppleScriptを実行  on run {input, parameters}   set folderA to item 1 of input    -- POSIX変換   set folderA_POSIX to POSIX path of folderA   -- 移動先   set folderB to "フォルダBのパス"    -- フォルダBの中の日付名のサブフォルダ   set theTime to do shell script "date +'%y-%m-%d'"    -- フォルダB / yymmdd のパス   set yymmdd to do shell script "find " & folderB & " -name " & theTime & "* -print"   set moveCommand to "mv " & quoted form of folderA_POSIX & " " & quoted form of yymmdd   do shell script moveCommand   return input end run Finder項目をコピー      フォルダCを指定 一応、上記の流れで動いているのですが、このワークフローと同じ内容で別のフォルダ用にコピーをしたところ、「AppleScriptを実行」の結果に移動先のフォルダBのyy-mm-ddフォルダに保存されたファイルのパスが表示されず、最初のフォルダAのパスが入っていて、テストの結果のログの部分には、「アクション”Finder項目をコピー”に必要なデータがありません」とありました。 ワークフローをコピーする前のちゃんと結果を得られている方のフォルダでは、移動先のパスが結果に表示されていたので、最後の return input の値が更新されていないのかな?と想像しているのですが、どうしたら良いですか? 「Finder項目をコピー」にデータを引き渡すことができない原因はなんでしょうか? 同じスクリプトで問題なく動いているフォルダもあるのですが、違いは何でしょうか? アクセス権はいずれも同じ設定(読み書きOK)になっています。 そもそも上記のようなスクリプトで問題ないでしょうか? Macもまだ慣れず、AutomatorもAppleScriptも知識がないのでとんちんかんな質問でしたら申し訳ありませんが、ご指導よろしくお願い致します。

    • ベストアンサー
    • Mac