• 締切済み

VBでのExcel操作

VB6.0を使用してExcelを操作するプログラムを作成しています。 Excelブックを全画面表示させて、右側に小さめのフォームを表 示させるのですが、Excelブックの方をクリック(アクティブ) したときにもフォームがExcelの手前に見えている状態にさせる にはどうしたらよいのでしょうか? いろいろ試みましたが、どうしてもフォームが後ろにいってしま います・・・。

みんなの回答

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

これをモジュールの先頭に宣言 Private Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Private Const HWND_TOPMOST = -1 Private Const SWP_NOMOVE = &H2 Private Const SWP_NOSIZE = &H1 プログラム中にこれを呼んで、常に最前面 Call SetWindowPos(Form1.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)

関連するQ&A

  • VB6.0のエクセル操作について。

    VB6.0のエクセル操作について。 環境:XP,VB6.0です。 VB6.0でのエクセル操作や印刷についての質問です。 VB6.0で、リストビューに表示されている行のデータをエクセルに移してそれを印刷するというプログラムを組みたいのですが、 流れとしては、 1.リストビューから選択行を取得。 2.選択行の項目を既存のエクセルテンプレートに沿ってエクセルに入力。 (出来れば毎回違う名前で保存したいです。) 3.そのエクセルを印刷。 という流れなんですが、とりあえず1番までは出来ているのですが、 2,3の部分、エクセル操作と印刷の部分が分かりません。 ややこしい質問ですが、どなたかご教授お願いします。

  • VB6.0でExcelの操作。

    お世話になっております。 VB6.0上で、Excelオブジェクトの書きこみロジックを作成しているのですが、Excelオブジェクトを作成し、セルへのデータの書きこみ等は問題なくできるのですが、フォントを変えたり、線を引いたり、オートシェイプを操ったり・・・等の方法がいまいちわかりません。自分でも調べてはいるのですが、VB6.0でのそういったExcel操作事例集のようなサイトがありましたら、教えて頂けないでしょうか?

  • VBでexcelのプレビュー画面表示

    VB6でフォームにボタンを設定し、押したらexcelのプレビュー画面に行き、excel方式で印刷できるプログラムを作りたいのですが、教えてください。excelへの接続も同時に教えて下さると、ありがたいです。

  • VBからEXCELファイル印刷

    VB6でフォームにボタンを設定し、押したらexcelのブック全体を指定した状態のプレビュー画面を表示させるにはどうしたらいいでしょうか。

  • VB.NETからエクセルを起動して、エクセルでVBを閉じたい。

    こんにちは。 先日、エクセルのフォームを最前面に配置したいという 質問をさせて頂いたものでございます。 それで、SetWindowPosのAPIで設定する方法を教えて頂いたのですが、 最前面にする事は出来たのですが、フォームを動かすと ブックはその一つ下に現れてしまい、 ブックを最背面に配置するなどを試みてみたのですが、 どうもうまく行かないので、 エクセルから直に立ち上げることが出来ないようにして VB.NETのフォームを作ってエクセルにデータを送ろうかと思いました。 それで、データを送る方法は何とかなりそうなのですが、 VB.NETのフォームからエクセルを起動して、 次にエクセルからそのフォームを出したり、隠したりしたいのですが、 その場合、VB.NETのフォームのなんと言うハンドルを取得すればよいでしょうか? IDにも色々あるようで、どれを使えばよいのか分からなくなってしまいました。 そのIDはVBのフォームを起動した時に、エクセルと共有するiniファイルなどに、書き込んでおこうかと思っています。 よろしくお願いいたします。m(__)m

  • VB.net(2003)でのexcel操作

    現在vb.netを使用してのExcelそうさプログラミングを作っており、excel sheetへの文字入力はできるようになりました。そこで質問なのですが、excelシートの特定のセルの値が5だった場合にその隣のセルのあたいを10にするというプログラムを作りたいのですが、VBAではとても簡単なのですが、vb.netを使用してどのようにやればよいかがわからないのでご教示いただきたいです。activecell.offset(0,1)やcells.findのような、VBAをVB.netから使用する方法はあるのでしょうか?

  • VB6 からEXCEL起動をブロックする方法

    VB6を使用してEXCELを開き色々コントロールするプログラムを作成したのですが、EXCELをプログラムからでなく、単独で起動してしまうとVB6から開いたEXCELのコントロールに悪影響を与えてしまうようです。 そこで、VB6で作成するプログラムの中にEXCELを単独で起動出来ないようにブロックするコードを入れられないかと考えています。 良い方法がありましたらご教授下さい。

  • VB6からExcelを操作する

    VB6.0からExcelの操作をしています。 そのなかで、Excelシートを印刷したいのですが、どのようにしたら良いのでしょうか。 また、ExcelVBAのFunctionやSubを実行するにはどのようにするのでしょうか。 VB6.0内でExcel操作は次のようにしています。 Dim ExcelApp As Object Dim EWorkbook As Object Dim ESheet As Object Set ExcelApp = CreateObject("Excel.Application") Set EWorkbook = ExcelApp.Workbooks.Open(ExcelBookFlNm) Set ESheet = EWorkbook.Sheets(M_SheetNm) Set ESheet = Nothing Set EWorkbook = Nothing ExcelApp.Quit Set ExcelApp = Nothing よろしくお願いします。

  • EXCEL VBAから、VBのフォームを開くためには?

    EXCEL VBAからVBへプログラムを移そうと努力しています。 そこで、エクセルのシートのコマンドボタンを押すと、 VBで作成したフォームが開き、そこからEXCELの処理を させたいと考えています。 VBからエクセルの処理は Excel.Application のあたりをつかうことでなんとかなりそうなんですが その逆がわからず行き詰まっています。 EXCELは2000 VBは6.0 です ご存じの方、よろしくお願いします。

  • Excelオブジェクトの操作

    お世話になっております。 二つどなたかご教授下さい。 VB6.0を使用しExcelオブジェクトにデータを吐き出す単純なロジックを作成しております。 この際、Excelオブジェクトをいろいろ操作しているのですが、2つわからない事があります。 一つは、Excelの操作で、「表示」→「ズーム」を70%にする記述。 もう一つは、「ツール」→「オプション」→枠線のチェックを外す(つまり枠線非表示にする)方法。 これらの作業をVB上でワークシートオブジェクトを操作して行う方法をご教授下さい。 マクロでこれらの動作を一旦記録し、そのロジックをいろいろ加工してみてもだめでしたm(__;)m。

専門家に質問してみよう