- ベストアンサー
EXCELのプロパティ変更
こんにちわ。VBでEXCELを起動して、データを転送してグラフを書くところまで、皆さんのお力を借りて辿り着きました。その度は大変お世話になりました。それで、今回の問題は、そのグラフのプロパティも変更したい、、。Withとかを使って??実際やりたいのはEXCELの機能で目盛の書式設定、最大値最小値の変更をVBの変数を使って可変にしようかなと考えています。作り方に問題があるとは思いますけど、なんかデータとかが可変なんでグラフに偏りが出てくる為、そんな処理をしなければならないような感じなんですが、どうぞ宜しくお願いします。また説明下手ですね、、。
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
( ̄ー ̄)ニヤリ
その他の回答 (8)
- TAGOSAKU7
- ベストアンサー率65% (276/422)
> Set MyChart = xlSheet.ChartObjects("グラフ 1") この行の次に MyChart.Activate を追加してみてください。
お礼
失礼しました。回答を頂いてスグ試したところ実現することができて、お礼をするのをすっかり忘れていました。ありがとうございました。なんだか、またお世話になる気もしますが、その時はまたどうかどうか宜しくお願いしまッす。
- TAGOSAKU7
- ベストアンサー率65% (276/422)
明日ですね。わかりました。今日はこれで最後の書込みにしておきます。 まだ 仕事中ですので、掲示はみております。 新たな質問は別スレッドにしてくださいね。あとで検索する時、一つのスレッドには一つの質問の方が、あとで検索しやすいので・・・・ やりたいことはピクチャボックスに描画していき、 Call SavePicure(Picture1.Image, "C:\Test.bmp") っていうような要領で実現可能と思われます。 別質問をとして発言を行ったなら、その時に詳しく述べます。
お礼
大変迷惑かけてます。まだまだ常識がないですね、、。これから精進いたします。一応、これがソースの一部なんですけど、、。 Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim strFileNAM As String Dim strExcelSheet As String Dim MyChart As ChartObject 'ブックのシート名 strExcelSheet = "Sheet1" Set xlApp = New Excel.Application Set xlBook = GetObject(strExcelFile, "Excel.Sheet") Set xlSheet = xlBook.Worksheets("Sheet1") For i = 1 To intCnt - 1 xlSheet.Cells(0 + i, 11).Value = dblPastCalData(i) Next i xlSheet.Cells(1, 3).Value = dblJogen xlSheet.Cells(2, 7).Value = dblKagen xlSheet.Cells(1, 15).Value = dblCalData '絶対値を計算 dblMemoriVAL = dblABSMax(dblPastCalData, intCnt - 1) Set MyChart = xlSheet.ChartObjects("グラフ 1") With MyChart.Chart .Axes(xlValue).MaximumScale = dblMemoriVAL .Axes(xlValue).MinimumScale = -(dblMemoriVAL) End With xlSheet.Parent.Windows(1).Visible = True 'グラフをコピー xlApp.Worksheets(1).ChartObjects("グラフ 1").Copy 'クリップボードから貼り付け frmComGraph.Picture1.Picture = Clipboard.GetData 'ファイル名を指定 strFileNAM = strTstKoMoku & lngNO & strCheck & ".bmp" frmComGraph.Picture1.Refresh Call SavePicture(frmComGraph.Picture1.Image, "C:\Documents and Settings\Graph\デスクトップ\GraphVB\" + strFileNAM)
- TAGOSAKU7
- ベストアンサー率65% (276/422)
エクセルのブックを開く部分のプログラムを見せてください。 おそらく ブックオブジェクトの指定がないからのような気がします。
お礼
ちょっと今、手元にソ-スがないので明日見てもらいたいですけど、、。また新たな問題がありましてVBで「Ω」こんな絵を書いて丸の中と脇に変数を表示、そしてそれを画像ファイルとして保存。また説明不足だとは思いますけど、そんなコンポーネントみたいなものってありますか?なんて次から次に分からないことだらけなんでしょう、、。
- TAGOSAKU7
- ベストアンサー率65% (276/422)
エクセルのグラフの操作コードを記述してるのは、エクセルVBAに記述してますか? それともVB側? もしVB側であればActiveSheetの前に、ブックやエクセルアプリケーションを指定しなければなりませんよ。 とりあえず、さっきのコードはどちら側に記述したのでしょうか?
お礼
VB側です。EXCEL側にはなるだけ記述はしたくないのです。
- TAGOSAKU7
- ベストアンサー率65% (276/422)
#2の発言で できませんでしたか?
お礼
んー、、なんだか出来ないんですよね。EXCELの不具合かと、、ってヘルプで見たんですけど、、でもそれってEXCEL4.0の話かも、、。
- TAGOSAKU7
- ベストアンサー率65% (276/422)
ごめんなさい xlCategoryをどのように使用しているかがわかりません。 あと一度の書込みに、お礼と補足をまとめた方がいいですよ。 いざ何か書きたい時に、書けなくなってしまいますよ。
お礼
そうですね、私も追記が出来なくてたまに困っていました。私のしたかったことは ActiveSheet.ChartObjects("グラフ 1").Activate With ActiveChart.Axes(xlCategory) .MinimumScale = 1 '最小 .MaximumScale = 9 '最大 .MajorUnit = 4 '目盛間隔 End With という処理でした、、。またまた言葉不足でスミマセン。これって、やっぱり出来ないものなんですか?
- TAGOSAKU7
- ベストアンサー率65% (276/422)
あけましておめでとうございます。 ごめんなさい。 以前に回答したつもりが、どうやら決定ボタンを押し忘れていたようで、回答されていないことに今気が付きました。 手後れでしょうか? ActiveSheet.ChartObjects("グラフ 1").Activate With ActiveChart.Axes(xlValue) .MinimumScale = 1 '最小 .MaximumScale = 9 '最大 .MajorUnit = 4 '目盛間隔 End With
お礼
あけましておめでとうございます。なんだか、あきらめかけていたところです、、。TAGOSAKU7さんの返事で、またやる気が出てきました!
補足
いろいろ調べたところ xlCategoryの方を変えられれば私のしたいことは実現できそうなんです。でもEXCElの不具合?で出来なそうなんですが、これって出来るんですかね??
- TAGOSAKU7
- ベストアンサー率65% (276/422)
ChartAreaだったかな?未検証です。 その中にいろいろ情報が入ってると思ったけど・・・ ちがったら、マクロを記録して行いたい処理を記憶させて、コードを見たらなんとなくわかると思いますが・・・
お礼
あひさしぶりです。毎度お世話になっているHUKAHIREです。こうも寒いと温かいものが恋しくなりますね。フカヒレスープ飲みたいなー。
補足
すみません、ChratAreaの使い方を教えて下さい。ちなみにマクロは教えてもらってちょっと試してみたんですけど、意味不明でした。、、、私には、、。
お礼
♪(⌒∇⌒)ノ""