- ベストアンサー
エクセルでこういうことは出来るかな?
エクセルで自分で作成したファイルを開くと同時に資料のPDFも同時に開くようにしたいです 左右に画面半分で表示させて 両方同時に見れるようにしたいです これって可能でしょうか?エクセル同士のファイルは可能なことは分かっています。宜しくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
pdf ファイル名を指定している所は変更して下さい。 Option Explicit ' Declare Function GetForegroundWindow Lib "user32" () As Long ' Declare Sub Sleep Lib "kernel32" ( _ ByVal dwMilliseconds As Long) ' Declare Function SetWindowPos Lib "user32.dll" ( _ ByVal hWnd As Long, _ ByVal hWndInsetAfter As Long, _ ByVal X As Long, _ ByVal Y As Long, _ ByVal cx As Long, _ ByVal cy As Long, _ ByVal uFlags As Long) As Long ' Sub Macro1() Dim Width As Long Dim Height As Long ' With Application .WindowState = xlMaximized CreateObject("Shell.Application").ShellExecute _ "C:\Users\MA\Desktop\My Documents\質問解答\OKWAVE\q10077917.pdf" Width = GetForegroundWindow ' Do While Width = GetForegroundWindow Sleep 100 Loop Sleep 1000 Width = .Width * 2 / 3 Height = .Height * 4 / 3 - 9 SetWindowPos GetForegroundWindow, -1, _ Width + .Left * 3, 0, Width - .Left, Height, 4 Width = .Width / 2 + .Left Height = .Height .WindowState = xlNormal .Left = 0 .Top = 0 .Width = Width .Height = Height End With End Sub やむ負えず、WINDOWS10にアップグレードしたら、ウインドウを左右に並べて表示が使えなくなり、私自身が必要になったので作りました。 世の中だんだん不便になりますね。
その他の回答 (4)
- MT765
- ベストアンサー率57% (2080/3618)
ざっくりした予想ですけどウィンドウ位置やサイズを扱うにはPowerShellが使えると思うのでExcelVBAを使ってブックを開くときにPowerShellを起動して…とやればできそうな気もします。 【UI Automation,PowerShell】ウィンドウを移動・サイズを変更する最も簡単なプログラム https://www.tekizai.net/entry/powershell_uiautomation_window 【Excel VBA】PowerShellを実行し、処理結果をVBA側で取得する方法 https://buralog.jp/vba-powershell-exec/
- imogasi
- ベストアンサー率27% (4737/17069)
直ぐ思い付いたのは、エクセルVBAの利用です。 ーー エクセルには、エクセル・ファイルを開くときに、実行してくれる、(Auto)的Openイベントがあります。 これをやるのは (1)(初めてだろうから)エクセルで、マクロの実行を許可する設定をする(1回だけ)。ファイルーオプションの中の1設定。 (2)開発ーVisualbasicーVBA画面でプロジェクト・エクスプローラーの 「ThisWorkbook」を選び、オブジェクトの方(左)を「Workbook」,イベントの方(右)を「Open」を選ぶと 自動で、 Private Sub Workbook_Open() End Sub がでる。 ーーー そこで Private Sub Workbook_Open() PDFを自動で開く End Sub 標準モジュールに(プロジェクトエクスプローラーのModule1をクリックして出る画面に) Sub PDFを自動で開く() Dim MyPath As String MyPath = "C:\Users\XX\Documents\PDFファイル例1.pdf" CreateObject("Shell.Application").ShellExecute MyPath Windows.Arrange xlArrangeStyleVertical End Sub 上記で、「XX」のPDFファイルを指定する部分(行)は、適当な、質問者の指定する、フルパス名で変えてください。 こういうのは、WEB記事に載っている。 ーー このブックを開くと、「当ブック(当然)」と「WEBブラウザで、指定PDFファイル」が開いた。 ーー しかし、2画面が自動で、(隣接かな)並ぶのは失敗。多分、両者がエクセルファイルでないモノのウインドウ(を含む)の整列は、これではだめなのだろう。 === 余談 (1)この質問のPDFファイルは1つではなく、こういう場合はAファイル,こういう場合はB、・・という風なニーズではないのか? 例えば、複数のうちの、当会社の参考や解説記事が欲しい場合など。 そうなると、こういうやり方では無理だろう。 (2)VBAなどを使わず、操作や設定では、本件無理だろう。 本件は、超上級のスキルを持ち、VBA程度のスキル以外も駆使しないと無理だろう。 (3)シートに、リンクを張る方法を考えたらどうか。複数並べて、人間の判断で、必要な情報のあるA,B、・・をクリックして、選べばよい。操作は、挿入-ハイパーリンク・・。 (4)最近は、エクセルでエクセルシートに読みこめるPDFファイルとエクセル機能もあるかもしれない。こういう点は小生は不案内。
- notnot
- ベストアンサー率47% (4900/10358)
PDFファイルを開くだけ(※)なら、VBAで可能ですが、配置変更は無理だと思います。 ※:"cmd /c start """" """ & PDFファイル名フルパス & """" というコマンドを実行すれば良い。 VBAからコマンドを実行する方法は検索しましょう。
- msMike
- ベストアンサー率20% (364/1804)