• 締切済み

Win32::OLE で Excel のウィンドウ枠固定

Ver は Perl 5.8 で、 今 Win32::OLE を利用して、Excel ファイルの操作をする スクリプトを書いています。 VBA で書けば以下の様に「ウィンドウ枠の固定」ができるのですが、 これを Win32::OLE を使った場合はどのような記述になるのかが 分からなくて困っています。 With ActiveWindow .SplitColumn = 1 .SplitRow = 1 .FreezePanes = True End With よろしくお願いします。

  • Perl
  • 回答数1
  • ありがとう数2

みんなの回答

  • moon_piyo
  • ベストアンサー率60% (88/146)
回答No.1

こんにちは サンプルはPerl5.6ではうごきました use Win32::OLE qw(with); $excel = Win32::OLE->GetActiveObject('excel.application'); #withをつかうなら with($excel->activewindow, splitcolumn=>1,splitrow=>1,freezepanes=>1); #withをつかわないなら # $excel->activewindow->{splitcolumn}=1; # $excel->activewindow->{splitrow}=1; # $excel->activewindow->{freezepanes}=1;

mixiuser
質問者

お礼

moon_piyo さん、初めまして。 回答ありがとうございます。 このスクリプトは会社のPCで書いているので、 出社したら真っ先に試してみます。 そして、実施結果をまた報告します。

mixiuser
質問者

補足

moon_piyo さんの教えてくださった方法で解決しました。 本当にありがとうございました!!

関連するQ&A

  • VBScript 先頭行の固定

    VBScript Script ファイル (.vbs)を書き出して、エクセル表の加工をしようとしています。 Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set objWorkbook = objExcel.Workbooks.Open("~~~ ・ ・ ・ 先頭行を固定したく、下記のようにしましたがエラーになります。 objWorksheet.Range("A2").Select objWorksheet.ActiveWindow.FreezePanes = True また、データーのある最下行+2にデーターの合計を入れるように、追加コードを記述したいのですが、どのようにするのでしょうか?

  • エクセルで「ウインドウ枠の固定」の文字が見当たらなくなりました。

    エクセルで先日まではウインドウ→ウインドウ枠の固定で操作できていたのですが、急になぜか「ウインドウ枠の固定」の表示が見えなくなりました。 どうしたら表示が見えるようになるのかを教えてください。 よろしくお願いします。

  • VBAで全画面/数式バーが出ない?

    エクセル2013です。 以下のVBAでFullscreenにすると、なぜか数式バーがでません。 これまでのエクセル2010では、このコードでちゃんと出ていました。 エクセル2013でも全画面表示で数式バーを出すためにはどうしたらよいのでしょうか? Sub FullSize() ActiveWindow.WindowState = xlMaximized With Application .WindowState = xlMaximized .DisplayFullScreen = True .DisplayFormulaBar = True '2013では数式バーが出ない! End With End Sub

  • 別のプログラムでのOLEの操作が完了するまで待

    エクセルvbaで作業をしていたら 「別のプログラムでのOLEの操作が完了するまで待機します」 と出てフリーズするのですが、何が起きてるのでしょうか? 原因を教えてください。 オフィス2010です。

  • ExcelVBA ウィンドウサイズをリサイズしない

    いつもお世話になっています。 ActiveWindow でウィンドウサイズを固定することはできるのですが、 Applicationのウィンドウサイズを固定することができません。 VBAではできないのでしょうか。 教えてください。 以下を実行すると、「オブジェクトをサポートしていません」とエラーが表示されます。 Sub Auto_Open() With Application .WindowState = xlNormal .Width = 600 .Height = 400 .EnableResize = False  '---ウィンドウサイズを変更できない End With End Sub

  • 別のプログラムでのOLEの操作が完了するまで待機し

    エクセルvbaで他のファイルを開こうとすると 「別のプログラムでのOLEの操作が完了するまで待機します」 と出て、いつまでたっても開けません。 中止やキャンセルボタンがない為、 無限ループに陥ります。 こういう場合、どうすればvbaの中断ができるのでしょうか? 開こうとしているファイルは既に開いているわけではありません。 手作業で開くと開けます。

  • Windows2000でエクセルの全画面表示が・・・?

    エクセルのVBAマクロで Sub 全画面表示() Application.DisplayFullScreen = True ActiveWindow.DisplayWorkbookTabs = False End Sub を行うと、エクセル画面の一番下の部分がタスクバーに隠れてしまい、横向きのスクロールバーが使用出来なくなってしまいます。 Windows95や98ではエクセル2000でもそんなことはなかった(タスクバーも消えるため)のですが、OSがWindows2000だとそうなるようです。 Windows2000で全画面でも横移動のスクロールバーを表示させたいのですが、マクロの記述はどうすればいいのでしょうか? タスクバーの上にスクロールバーが来る用にしてもいいし、マクロでタスクバーを消す方法でもいいです。 よろしくお願いします。困っています。

  • VBAで枠固定されたsheetを左上に位置を戻す

    Excel2013のVBAで Sub Sample1() Sheets(Array("Sheet1", "Sheet3")).Select End Sub  と何枚かのシートをグループ化しているとします。グループ化していないシートもあります。 ただし、これらのシートにはウィンドウ枠の固定をしています。 これらのグループ化を適応したシートのウインドウの位置を左上に戻して、枠を固定した外側も左上に戻したいです。左上になっても、固定化していないところは戻らなかったり、sheet1だけ戻ったりしてうまくいきません。 お願いします。

  • Access2000からExcel2000の罫線の削除

    Access2000でデータを抽出し、Excel2000に出力する作業を行っています。 VBAで以下のような記述で行っています。 'ファイルパス指定 lBookNm = "D:\temp\test.xls" 'Excelのオブジェクトを設定 Set lExcelObj = CreateObject("Excel.Application") 'Excelを開く lExcelObj.Workbooks.Open (lBookNm) 'Excelの表示 lExcelObj.Application.Visible = True 'シートのコピー lExcelObj.Worksheets("master").copy After:=lExcelObj.Worksheets("master") lExcelObj.Worksheets("master (2)").Name = "テスト" 'シートの操作 With lExcelObj.Worksheets("master") .Activate .Cells(8, 1).Value = "test" End With lExcelObj.ActiveWorkbook.Save '保存 以下の2点について、わかる方おりましたらご教示お願いします。 1、罫線の削除 罫線を削除したいと思い、以下の記述をしましたが、 「アプリケーション定義またはオブジェクト定義のエラーです。」となってしまいます。 どのように記述すればよいでしょうか。 With lExcelObj.Worksheets("master")   .Range("B39:B42").Select   .Application.Selection.Borders(xlEdgeRight).LineStyle = xlNone End With 2、シートの削除 シートを削除したいと思い、以下のように記述しましたが、 Excel上で、「シートを削除します。」「OK」、「キャンセル」 と問い合わせ画面が出てしまいます。 無条件で削除を行いたいのですが、可能でしょうか。 lExcelObj.Worksheets("テスト").Delete

  • アクティブウィンドウから URL/HTML の取得

    ローカルの(WindowsXP)環境で、アクティブなエクスプローラのウィンドウから URL や HTML を、 Perl (ActivePerl) でそのプログラム中に取り込むにはどのようにしたらよいのでしょうか。LWP, Win32::OLE などウェブで調べてみましたがわかりませんでした。ご教示いただけたら嬉しいです。 調べた限りでは Win32::OLE で以下のように出来そうだったのですがうまく行きませんでした。 use Win32::OLE qw(EVENTS in with valof); my $IE = Win32::OLE->GetActiveObject('InternetExplorer.Application') || Win32::OLE->new('InternetExplorer.Application', 'Quit'); $url = $IE->{Document}->{Url}; print "URL: " . $url . "\n";

    • ベストアンサー
    • Perl