• ベストアンサー

エクセルでこういうことは出来るかな?

エクセルで自分で作成したファイルを開くと同時に資料のPDFも同時に開くようにしたいです 左右に画面半分で表示させて 両方同時に見れるようにしたいです これって可能でしょうか?エクセル同士のファイルは可能なことは分かっています。宜しくお願いします。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (774/1618)
回答No.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)
回答No.4

ざっくりした予想ですけどウィンドウ位置やサイズを扱うには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)
回答No.3

直ぐ思い付いたのは、エクセル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)
回答No.2

PDFファイルを開くだけ(※)なら、VBAで可能ですが、配置変更は無理だと思います。 ※:"cmd /c start """" """ & PDFファイル名フルパス & """" というコマンドを実行すれば良い。 VBAからコマンドを実行する方法は検索しましょう。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.1

可能ですよ、左右でも、上下でも。 添付図参照(Excel 2019)

関連するQ&A