- ベストアンサー
Accessのハイパーリンクで別画面にしたいです
Access超初心者です。 フォームをハイパーリンク化して、エクセルで作った工事作業費を別画面で表示させようと思うのですが、Accessも最大化してしまいます。 Accessの画面はそのままで別画面にする方法がありましたら、お教えいただきたいです。 宜しくお願いします。 Private Sub 工事作業費_Click() DoCmd.Maximize DoCmd.RunCommand acCmdAppMaximize End Sub
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
回答No.2です フィールドのデータ型でハイパーリンク型。OLE型の2つを紹介しましたが 添付ファイル型もあります。 何れも同じような働きですが,、添付ファイル型は一つのフィールドに複数のファイルを定義できます 何れのデータ型もテーブルまたはフォームを開いて右クリックから一連の処理で登録し 参照はクリックでファイルを開きます。 因みに、ハイパーリンクの登録と参照です ハイパーリンク先登録 【テーブルまたはフォームを開く】⇒【フィールドを右クリック】⇒【ハイパーリンク】 ⇒【ハイパーリンクの編集】⇒【検索先】⇒【ファイル名】⇒【OK】 ハイパーリンク先を開く 【ハイパーリンクしたフィールドをクリック】 以上のですのでVBAは不要です。 尚、質問にある Private Sub 工事作業費_Click() DoCmd.Maximize DoCmd.RunCommand acCmdAppMaximize End Sub これは開いているフォームを最大化するもので、 デザイン時の大きさに戻すのは DoCmd.Restore ではないでしょうか リンク先のウィンドサイズはリンク先で定義することになる
その他の回答 (6)
- NotFound404
- ベストアンサー率70% (288/408)
ハイパーリンクだと制約が有ったり扱いが面倒なので コマンドボタンなどのクリック時イベントではダメ? Excelの工事作業費.xlsx のVBEを開いて ThisWorkbookのコードに Private Const SW_ShowNormal = 1 '元に戻す Private Const SW_ShowMinimizedD = 2 '最小化 Private Const SW_ShowMaxmized = 3 '最大化 Private Declare Function ShowWindow Lib "user32" _ (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long Private Sub Workbook_Open() Dim rtnVal As Long ' Debug.Print Excel.Application.hWnd rtnVal = ShowWindow(Excel.Application.hWnd, SW_ShowMaxmized) Windows.Arrange ArrangeStyle:=xlTiled 'シートの大きさをExcelに合わせます End Sub としてマクロありファイル(拡張子xlsm)で保存します。 Access側ではクリック時イベントなどに 'Shell SysCmd(acSysCmdAccessDir) & "excel.exe" & " " & "E:\てすと\工事作業費.xlsm" ’↑↓どちらか CreateObject("shell.application").shellexecute "E:\てすと\工事作業費.xlsm" などとしてみては? 単純にExcelを最大化させるには ハイパーリンクで工事作業費.xlsx を開き Altキーを押しながらスペースキーを押します。 小窓が現れるので、Xキー で行えます。 小窓が開いた段階で、Escキーを押せば中止できます。 以上、ご参考まで。
- chayamati
- ベストアンサー率41% (260/624)
ハイパーリンクのツールはEXCEL、WORDには挿入リボン内にありますね ACCESSにはそのようなものは用意されていません。 データベースツールのリボン内にオブジェクトの依存関係ツール フォームのデザインビューのデザインリボンにハイパーリンクツールがありますが レコード毎の登録はできないようです やはりテーブルデザインで、フィールドの一つのデータ型をハイパーリンク型に することですね。
- chayamati
- ベストアンサー率41% (260/624)
- Ceranaj
- ベストアンサー率58% (14/24)
最大化表示させる意図が、ご質問文からだけでは理解しかねるのですが、 エクセルの表示位置・大きさをVBAで指定する。 というやり方では如何でしょうか。 参照サイトは以下。 http://www.officepro.jp/excelvbaform/form_form/index4.html http://www.moug.net/tech/exvba/0010004.html
- chayamati
- ベストアンサー率41% (260/624)
- Ceranaj
- ベストアンサー率58% (14/24)
一行目の DoCmd.Maximize を、削除してみて下さい。 上手くいかないようでしたら、2行目の方を削除してみて下さい。
お礼
回答有難うございます。 こちらの説明不足ですみません。 エクセルを左半分、Accessを右半分使っているのですが、フォームをハイパーリンクした際、 Private Sub 工事作業費_Click() DoCmd.Maximize DoCmd.RunCommand acCmdAppMaximize End Sub にすると、Access・エクセル両方が全画面になります。 1行目を削除しても同様で、2行目を削除すると、右半分で Access・エクセル両方となります。 他にもエクセルを開いているので、その都度全画面若しくは右半分では 使いつらいのです… 他に良い方法がありませんでしょうか。宜しくお願いしますm(_ _)m
お礼
添付ファイル型でスッキリ解決しました。 有難うございました。