VBAで計算結果をグラフで表示する方法とは?

このQ&Aのポイント
  • VBAを使用して計算した結果を外部プログラムでグラフ表示し、計算ごとにグラフを更新したい場合の方法について教えてください。
  • HandleXというソフトを使用してクラス名を取得しようとしましたが、[classname]が毎回変化してしまい取得できませんでした。対処法を教えてください。
  • 質問させていただきます。VBAで計算した結果を外部プログラムでグラフ表示し、計算ごとにグラフを更新したいと考えています。HandleXを使用してクラス名を取得しようとしましたが、[classname]が毎回変化してしまい取得できませんでした。対処法があれば教えてください。お願いします。
回答を見る
  • ベストアンサー

クラス名が取得できない

質問させていただきます VBAで計算した結果を、外部プログラムでグラフを書き、計算するたびにグラフを更新したいと考えています。 Call Shell("開くプログラム名 開くファイル名", vbNormalFocus) hwnd = FindWindow("クラス名", vbNullString) 計算をする 計算したファイルの出力 postmessageでグラフを更新する命令の出力 (最後の3行を繰り返す) そこで、HandleXというソフトを使いクラス名を取得しようと考えましたが、[classname]という所が毎回変化してしまい、取得できませんでした。 対処法があれば教えてください。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

外部プログラムがウィンドウを持っているなら、 そのキャプションは一定になりませんか? なるなら hwnd = FindWindow(vbNullString, "外部プログラムウィンドウのキャプション") で取れた気がします。 一定じゃないなら、この話は忘れて下さい。

shougunn
質問者

お礼

返信が遅れてしまい申し訳ありません。 なぜなのか理由がわかりませんが、一日たって実行してみたらハンドル名が取得できました。 回答していただきありがとうございました。

shougunn
質問者

補足

回答していただきありがとうございます。 締め切りが遅れ申し訳ありませんでした。

関連するQ&A

  • 継承したクラス側のクラス名の取得

    C#3.5を使用しています。 BaseClassはStackTraceを使ってクラス名を取得できるメソッドを持っています。 それを継承したDerivedClass側でそのクラス名「DerivedClass」を取得したいのですが、 次のようなやり方では「BaseClass」が取得されてしまいます・・・ あくまでBaseClass側に記述したメソッドのままで、DerivedClass側のクラス名を取得するには どのようにしたら良いのでしょうか? public class BaseClass { public string className; public string ClassName { get { if (className == null) { StackTrace st = new StackTrace(false); StackFrame sf = st.GetFrame(0); className = sf.GetMethod().ReflectedType.Name; } return className; } set { className = value; } } } public class DerivedClass : BaseClass { } var c = new DerivedClass(); MessageBox.Show(c.ClassName);// BaseClassと表示される

  • CreateFileで開いたファイル名を取得するには?

    CreateFile関数で開いたファイル名を取得して、エディットボックスに表示させるプログラムを作りたいと思っています。 sendmessageを使って表示させることを考えてみたのですが…。 以下にソースを載せます。 // メインWindowへ通知するデータを作成 COPYDATASTRUCT cds; cds.lpData = pszFileName; //CreateFileの第一引数pszFileName(ファイル名)を格納 cds.cbData = lstrlen(pszFileName) + 1; cds.dwData = 0; // メインWindowを検索 HWND hWnd = FindWindow(NULL, _T("メインウインドウの名前")); if(hWnd) SendMessage(hWnd, WM_COPYDATA, NULL, (LPARAM)&cds); という風では、取得できないのでしょうか? よろしくお願いします。

  • mainメソッドの持つクラス名を取得するには

    サーブレットが実行された場合そのサーブレット名(getServletNameを使用して)を取得してテキストファイル出力するようにしております。 これをmainメソッドの持つクラス名(実行クラス名)を取得しようとgetClass()やgetName()を使ってやると”staticなメソッドは使用できません"となりコンパイルが通りません。 サーブレットのように実行クラス名を取得するのはmainメソッドの持つクラスの場合無理なんでしょうか?  Javaの初心者なもので情報が少なければ要望していただければご提供しますのでご教授願います。 ちなみに出力する際はFileWriterやRandomAccessFileを使っております。よろしくお願いします。

    • ベストアンサー
    • Java
  • VB.NETで、Windows Vistaのスタートボタンを消すプログ

    VB.NETで、Windows Vistaのスタートボタンを消すプログラムをしています。 下記コードでタスクバーを消せるのですが、 hwnd = FindWindow("Shell_traywnd", vbNullString) value = SetWindowPos(hwnd, -1, 0, 0, 0, 0, &H80) value = FindWindowEx(hwnd, 0, "Button", vbNullString) EnableWindow(value, 0) で、スタートボタンを消せません。 何が悪いのかご教示いただけますでしょうか。 どうぞよろしくお願いいたします。

  • windows7のエクスプローラをVBAで操作-1

    アドバイスをお願いします。 Excel-VBAで起動しているエクスプローラに対してハンドルを取得してクリックしたり、テキストボックスに文字をセットするプログラムを作って動かしています。 WindowsXPのときはできていたのですが、Windows7になったら正しく動作しなくなりました。 下のコードはエクスプローラの現在のフォルダパスが表示されるところに(添付ファイル参照)文字を入れるものです。 最後のSendMessageAnyで1が返ってしまいます。何が考えられますでしょうか。どう対策したらいいでしょうか。 なおハンドルの値はSDKのInspect Objectsで確認していますので、正しく取得できていると思っています。 よろしくお願いします。 Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As Any, ByVal lpWindowName As Any) As Long Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" ( _ ByVal hwndParent As Long, _ ByVal hwndChildAfter As Long, _ ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Declare Function SendMessageAny Lib "user32.dll" _ Alias "SendMessageA" _ (ByVal hwnd As Long, _ ByVal MSG As Long, _ ByVal wParam As Long, _ ByVal lParam As Any) As Long Const WM_SETTEXT = &HC Private hwnd As Long Private FOLDER As String Sub Put_folder_name1() hwnd = FindWindow("CabinetWClass", vbNullString) hwnd = FindWindowEx(hwnd, 0, "WorkerW", vbNullString) hwnd = FindWindowEx(hwnd, 0, "ReBarWindow32", vbNullString) hwnd = FindWindowEx(hwnd, 0, "Address Band Root", vbNullString) hwnd = FindWindowEx(hwnd, 0, "msctls_progress32", vbNullString) hwnd = FindWindowEx(hwnd, 0, "ComboBoxEx32", vbNullString) hwnd = FindWindowEx(hwnd, 0, "ComboBox", vbNullString) hwnd = FindWindowEx(hwnd, 0, "Edit", vbNullString) FOLDER = "\\xx.xx.xx.xx\test" RC = SendMessageAny(hwnd, WM_SETTEXT, 0, ByVal FOLDER) end sub

  • 「クラス名」とは、何でしょうか

    こんにちは、よろしくお願いします。 プログラムの「クラス名」とは、何のことでしょうか。 具体的には、Sleipnir 同時起動/終了プログラムの設定に当たって、iniファイルに「プログラムのパス」のほかに「クラス名」を書くように指定されていて、 登録したいのは、アイフォーの「検索Ninja」なのですが、 その「クラス名」がわかりません。 調べる方法がありましたら、教えていただけますか。

  • 最近使ったファイルからファイル名を取得したいです。

    現在、VC++、MFC,SDIでプログラムを作成しています。 自動でできるメニュー項目の中に、「最近使ったファイル」というものがあるのですが、 これをクリックすることでタイトルバーがその名前に更新されるようですが、この情報を取得することで ファイル名を出力するにはどうすればよろしいでしょうか? (AfxMessageBoxで出力するだけで大丈夫です)

  • 全パッケージの取得、全クラスの取得、全メソッドの取得

    やりたい事は、メインクラスより、同階層の全パッケージを取得(A)、 (A)より同階層の全クラスを取得(B)、 (B)より同階層の全メソッドを取得といったような事です。 例えば public class a { public static void main(String args[]) {  全パッケージの取得  全クラスの取得  全メソッドの取得 } } みたいな感じに。 試行錯誤したのですが、その処理を行う事の出来るメソッドかどうかも良く分からないし、 コンパイルエラーになるばかりで実現が出来ません。  ・メインクラスから同階層のパッケージを取得してパッケージ名を出力。  ・メインクラスからxパッケージ内の同階層のクラスを取得してクラス名を出力。  ・メインクラスからxパッケージにあるyクラス内のメソッドを取得してメソッド名を出力。 上記のようなめちゃくちゃシンプルなコードを挙げてご教示願います。

    • ベストアンサー
    • Java
  • インスタンス内から自分のクラス名を取得する方法

    クラスインスタンス内から自分のクラス名を取得しようと思うと、self.class.nameで取得できますが、type.nameでも取得できます。 しかし、typeは非推奨メソッドとなっているため、警告が出て、このままでは使用することができません。 素直にself.classを使えばいいのかもしれませんが、selfのワンクッションがどうにも気に入りません。 スマートな記述方法あったら教えて下さい。 # self.class.nameを使用する場合 class MyClass  def print_classname   puts self.class.name   # puts class.name これはエラー  end end # type.nameを使用する場合 class MyClass2  def print_classname   puts type.name # これはdeprecatedの記述で警告が出る  end end

  • ウインドウの取得

    かんたんYouTubeプレーヤーというソフトのウインドウハンドルを取得し、プレーヤーウインドウのサイズや位置を変更するプログラムをVB2008で作成しようとしました。このプレーヤーはリストウインドウとプレーヤーウインドウの二つがあるのですが、窓ちぇき!というソフトでタイトルとクラス名を調べたら二つとも同じタイトルとクラス名になっていました。これだとFindWindow関数でウインドウハンドルを取得できません。どうすればよいでしょうか。

専門家に質問してみよう