• ベストアンサー

エクセルVBAでセルに入力したパスでブックを開く

Excel2013で、あるファイルを使用している時に、別のブックを開きたいとして、 例えば、D:\oshiete\Desktop\2014年\開きたい.xlsm とT6セルにいれてあり、VBAを読み込むと開くようにするにはどうすればよいでしょうか? はじめに、エラー回避でファイルが存在しているのと、まだ開いていないことを確認してから動かしたいです。 色々やってみたけどうまくいかなかったので、よろしくお願いいたします。

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

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.2

>VBAを読み込むと開くようにする すいません、ブックを開いたときに同時に開くではなく、 VBA読み込み時に開く場合は VBEから、挿入→標準モジュールで標準モジュールを挿入し 以下のコードを貼り付けてください。 Alt+F8または表示→マクロから「指定ファイルを開く」を選び実行で T6セルのファイルを開きます。 コードの内容はNo1と同じものですが、補足致します。 末尾「'★」は同様で、末尾「'☆」の行の「T6」を変更することで 対象のセルアドレスを変更できます。 ■VBAコード Sub 指定ファイルを開く() Dim i As Integer Dim filepath As String filepath = Range("T6").Value '☆ If Dir(filepath) = "" Then   MsgBox filepath & vbCrLf & "はファイルが見つかりません。" '★   Exit Sub End If For i = 1 To Workbooks.Count   If filepath = Workbooks(i).FullName Then     MsgBox filepath & vbCrLf & "は既に開いています。" '★     Exit Sub   End If Next i Workbooks.Open Filename:=Range("T6").Value End Sub

hinoki24
質問者

お礼

問題なくバッチリ動作しました。 どうもありがとうございました。

その他の回答 (1)

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

Alt+F11でVBEを開き、 ThisWorkbookを右クリック→コードの表示を選択し 表示されたウィンドウに下記のVBAコードを貼り付けて VBEを閉じてください。 上書き後開き直すと、T6セルのパスを開きます。 (添付画面を参考にしてください) ファイルが存在しない場合、ファイルが開かれている場合に ダイアログを表示します。 ダイアログを表示させたくない場合は行末に「'★」を記述 している1行を削除してください。 ■VBAコード Private Sub Workbook_Open() Dim i As Integer Dim filepath As String filepath = Range("T6").Value If Dir(filepath) = "" Then   MsgBox filepath & vbCrLf & "はファイルが見つかりません。" '★   Exit Sub End If For i = 1 To Workbooks.Count   If filepath = Workbooks(i).FullName Then     MsgBox filepath & vbCrLf & "は既に開いています。" '★     Exit Sub   End If Next i Workbooks.Open Filename:=Range("T6").Value End Sub

関連するQ&A